Struct rustc_borrowck::borrowck::gather_loans::GatherLoanCtxt[][src]

struct GatherLoanCtxt<'a, 'tcx: 'a> {
    bccx: &'a BorrowckCtxt<'a, 'tcx>,
    move_data: MoveData<'tcx>,
    move_error_collector: MoveErrorCollector<'tcx>,
    all_loans: Vec<Loan<'tcx>>,
    item_ub: Scope,
}
🔬 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?

Fields

🔬 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. (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. (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?

item_ub is used as an upper-bound on the lifetime whenever we ask for the scope of an expression categorized as an upvar.

Methods

impl<'a, 'tcx> GatherLoanCtxt<'a, 'tcx>
[src]

🔬 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?

Guarantees that cmt is assignable, or reports an error.

🔬 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?

Guarantees that addr_of(cmt) will be valid for the duration of static_scope_r, or reports an error. This may entail taking out loans, which will be added to the req_loan_map.

🔬 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?

For mutable loans of content whose mutability derives from a local variable, mark the mutability decl as necessary.

🔬 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?

Determine when to introduce the loan. Typically the loan is introduced at the point of the borrow, but in some cases, notably method arguments, the loan may be introduced only later, once it comes into scope.

🔬 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?

Determine when the loan restrictions go out of scope. This is either when the lifetime expires or when the local variable which roots the loan-path goes out of scope, whichever happens faster.

It may seem surprising that we might have a loan region larger than the variable which roots the loan-path; this can come about when variables of &mut type are re-borrowed, as in this example:

struct Foo { counter: u32 }

fn counter<'a>(v: &'a mut Foo) -> &'a mut u32 {
    &mut v.counter
}

In this case, the reference ('a) outlives the variable v that hosts it. Note that this doesn't come up with immutable & pointers, because borrows of such pointers do not require restrictions and hence do not cause a loan.

🔬 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?

Trait Implementations

impl<'a, 'tcx> Delegate<'tcx> for GatherLoanCtxt<'a, 'tcx>
[src]

🔬 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. (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. (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?

Auto Trait Implementations

impl<'a, 'tcx> !Send for GatherLoanCtxt<'a, 'tcx>

impl<'a, 'tcx> !Sync for GatherLoanCtxt<'a, 'tcx>