You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To reproduce this, go into syntax::ast and change a use of Option to option. This resulted in a unresolved name : serialize_option error. I think it would have been better to report that option was an unresolved name first. (The particular use I changed was in item_impl, but that's not checked in yet.)
It would be nice to report errors that don't involve macro-expanded code first, but I'm not sure how easy that would be.
The text was updated successfully, but these errors were encountered:
/home/cmr/hacking/rust/src/libsyntax/ast.rs:94:20: 94:33 error: use of undeclared type name `option`
/home/cmr/hacking/rust/src/libsyntax/ast.rs:94 pub type fn_ident = option<ident>;
…d-root, r=RalfJung
Tree Borrows: Make tree root always be initialized
This PR fixes a slight annoyance we discovered while formally proving that certain optimizations are sound with Tree Borrows. In particular... (copied from the commit message):
There should never be an `Active` but not initialized node in the borrow tree. If such a node exists, and if it has a protector, then on a foreign read, it could become disabled. This leads to some problems when formally proving that read moving optimizations are sound.
The root node is the only node for which this can happen, since all other nodes can only become `Active` when actually used. But special-casing the root node here is annoying to reason about, everything becomes much nicer if we can simply say that *all* `Active` nodes must be initialized. This requires making the root node default-initialized.
This is also more intuitive, since the root arguably becomes initialized during the allocation, which can be considered a write.
To reproduce this, go into
syntax::ast
and change a use ofOption
tooption
. This resulted in aunresolved name : serialize_option
error. I think it would have been better to report thatoption
was an unresolved name first. (The particular use I changed was initem_impl
, but that's not checked in yet.)It would be nice to report errors that don't involve macro-expanded code first, but I'm not sure how easy that would be.
The text was updated successfully, but these errors were encountered: