เบงเบดเบ—เบตเบเบฒเบ™เบ‚เป‰เบฒเบกเบ•เบปเบงเบเบงเบ”เบชเบญเบšเบเบฒเบ™เบเบนเป‰เบขเบทเบกเปƒเบ™ Rust เป„เบ”เป‰เบ–เบทเบเบˆเบฑเบ”เบžเบตเบกเบกเบฒ.

Jakub Kฤ…dzioล‚ka เป€เบœเบตเบเปเบžเปˆเบซเบผเบฑเบเบ–เบฒเบ™เบชเบฐเปเบ”เบ‡เปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เบšเบฑเบ™เบซเบฒเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบš bug เปƒเบ™เป‚เบ„เบ‡เบเบฒเบ™ Rust compiler, เป€เบŠเบดเปˆเบ‡เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบกเปเบเป‰เป„เบ‚เบšเปเปˆเบชเปเบฒเป€เบฅเบฑเบ”เป€เบ›เบฑเบ™เป€เบงเบฅเบฒเบชเบตเปˆเบ›เบต.

เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบ Jakub เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ‚เป‰เบฒเบกเบœเปˆเบฒเบ™ Borrow Checker เบ”เป‰เบงเบ trick เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ:

fn เบซเบผเบฑเบ() {
เปƒเบซเป‰ boom = fake_static::make_static(&vec![0; 1<<20]);
println!("{:?}", เบšเบนเบก);
}

เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบงเบดเบ—เบตเบเบฒเบ™เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰เบšเปเปˆเบ–เบทเบเปƒเบŠเป‰เปƒเบ™เบเบฒเบ™เบœเบฐเบฅเบดเบ”, เป€เบžเบฒเบฐเบงเปˆเบฒเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบžเบฝเบ‡เปเบ•เปˆเบ”เบถเบ‡เบ”เบนเบ”เบ„เบงเบฒเบกเบชเบปเบ™เปƒเบˆเบเบฑเบšเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒ Rust เบšเปเปˆเบชเบปเบ™เปƒเบˆ.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: linux.org.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™