enum Scope<'a> {
Binder {
lifetimes: FxHashMap<ParamName, Region>,
next_early_index: u32,
track_lifetime_uses: bool,
abstract_type_parent: bool,
s: &'a Scope<'a>,
},
Body {
id: BodyId,
s: &'a Scope<'a>,
},
Elision {
elide: Elide,
s: &'a Scope<'a>,
},
ObjectLifetimeDefault {
lifetime: Option<Region>,
s: &'a Scope<'a>,
},
Root,
}
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Declares lifetimes, and each can be early-bound or late-bound.
The DebruijnIndex
of late-bound lifetimes starts at 1
and
it should be shifted by the number of Binder
s in between the
declaration Binder
and the location it's referenced from.
Fields of Binder
lifetimes: FxHashMap<ParamName, Region> | 🔬 This is a nightly-only experimental API. (rustc_private )this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
|
next_early_index: u32 | 🔬 This is a nightly-only experimental API. (rustc_private )this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
if we extend this scope with another scope, what is the next index
we should use for an early-bound region?
|
track_lifetime_uses: bool | 🔬 This is a nightly-only experimental API. (rustc_private )this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Flag is set to true if, in this binder, '_ would be
equivalent to a "single-use region". This is true on
impls, but not other kinds of items.
|
abstract_type_parent: bool | 🔬 This is a nightly-only experimental API. (rustc_private )this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
Whether or not this binder would serve as the parent
binder for abstract types introduced within. For example:
fn foo<'a>() -> impl for<'b> Trait<Item = impl Trait2<'a>>
Here, the abstract types we create for the impl Trait
and impl Trait2 references will both have the foo item
as their parent. When we get to impl Trait2 , we find
that it is nested within the for<> binder -- this flag
allows us to skip that when looking for the parent binder
of the resulting abstract type.
|
s: &'a Scope<'a> | 🔬 This is a nightly-only experimental API. (rustc_private )this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
|
Body
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Lifetimes introduced by a fn are scoped to the call-site for that fn,
if this is a fn body, otherwise the original definitions are used.
Unspecified lifetimes are inferred, unless an elision scope is nested,
e.g. (&T, fn(&T) -> &T);
becomes (&'_ T, for<'a> fn(&'a T) -> &'a T)
.
Fields of Body
id: BodyId | 🔬 This is a nightly-only experimental API. (rustc_private )this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
|
s: &'a Scope<'a> | 🔬 This is a nightly-only experimental API. (rustc_private )this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
|
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
A scope which either determines unspecified lifetimes or errors
on them (e.g. due to ambiguity). For more details, see Elide
.
Fields of Elision
elide: Elide | 🔬 This is a nightly-only experimental API. (rustc_private )this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
|
s: &'a Scope<'a> | 🔬 This is a nightly-only experimental API. (rustc_private )this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
|
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Use a specific lifetime (if Some
) or leave it unset (to be
inferred in a function body or potentially error outside one),
for the default choice of lifetime in a trait object type.
Fields of ObjectLifetimeDefault
lifetime: Option<Region> | 🔬 This is a nightly-only experimental API. (rustc_private )this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
|
s: &'a Scope<'a> | 🔬 This is a nightly-only experimental API. (rustc_private )this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml instead?
|
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Formats the value using the given formatter. Read more
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Immutably borrows from an owned value. Read more
type Error = <U as TryFrom<T>>::Error
🔬 This is a nightly-only experimental API. (try_from
)
The type returned in the event of a conversion error.
🔬 This is a nightly-only experimental API. (try_from
)
Mutably borrows from an owned value. Read more
🔬 This is a nightly-only experimental API. (get_type_id
)
this method will likely be replaced by an associated static
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Create an error for a missing method specialization. Defaults to panicking with type, trait & method names. S
is the encoder/decoder state type, T
is the type being encoded/decoded, and the arguments are the names of the trait and method that should've been overridden. Read more