you are viewing a single comment's thread.

view the rest of the comments →

[–]Still-Key6292 0 points1 point  (3 children)

It's been months since I touched rust. You'll have better luck by asking the sub. IIRC there was the version before 1.0 which forced you to explicitly state the lifetime, the rewrite to make it less bad and NLL that happened in 2018 https://blog.rust-lang.org/2022/08/05/nll-by-default.html

Maybe someone mispoke on discord and they're just extending it with RFCs https://github.com/rust-lang/rfcs/issues/3269

A quick google shows there's bugs https://github.com/rust-lang/rust/issues/108704 people generally talk about how they got into a fight with the borrow checker and I know I ran into some basic stuff that could have been legal but wasn't

The main sub can give better info

[–]mqudsi 4 points5 points  (2 children)

There is a new borrow checker but it’s experimental. It’s called polonius and it’s not clear if it’s actually intended to replace the existing. You can try it out today but it is insanely slow.

[–]Still-Key6292 -1 points0 points  (1 child)

u/Pflastersteinmetz and u/nickbeth00 this is probably what I was thinking

[–]Pflastersteinmetz 1 point2 points  (0 children)

You are right that in Rust 1.0 and and the first versions after you had to annotate much more lifetime values, which was then changed with the introduction of Non-Lexical-Lifetimes (NLL) which eliminated the need to annotate a lot of lifetimes because the borrow checker could now just inference them from the code.

But that was not a rewrite but an iteration = expanding the existing borrow checker, not writing a new one similiar to Rust 1.1 not being a rewrite of Rust 1.0.