diff options
| author | Jack Huey <jack.huey@umassmed.edu> | 2021-03-12 12:38:42 -0500 |
|---|---|---|
| committer | Jack Huey <jack.huey@umassmed.edu> | 2021-03-24 16:45:41 -0400 |
| commit | cfbd0eed98c93fed6dbcec4eb2e63966ff0ffc1b (patch) | |
| tree | b0414158dc43d04d48580ef39bf3a14aafdf0a86 /compiler/rustc_middle/src/query | |
| parent | 19ecfcd0e2ae01c79159888a45042a5d6f4ed487 (diff) | |
| download | rust-cfbd0eed98c93fed6dbcec4eb2e63966ff0ffc1b.tar.gz rust-cfbd0eed98c93fed6dbcec4eb2e63966ff0ffc1b.zip | |
Review comments
Diffstat (limited to 'compiler/rustc_middle/src/query')
| -rw-r--r-- | compiler/rustc_middle/src/query/mod.rs | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/compiler/rustc_middle/src/query/mod.rs b/compiler/rustc_middle/src/query/mod.rs index 93e4c97efd8..9014d798a64 100644 --- a/compiler/rustc_middle/src/query/mod.rs +++ b/compiler/rustc_middle/src/query/mod.rs @@ -1252,12 +1252,18 @@ rustc_queries! { desc { "looking up link arguments for a crate" } } - /// Lifetime resolution. See `middle::resolve_lifetimes`. - query resolve_lifetimes_definition(_: LocalDefId) -> ResolveLifetimes { + /// Does lifetime resolution, but does not descend into trait items. This + /// should only be used for resolving lifetimes of on trait definitions, + /// and is used to avoid cycles. Importantly, `resolve_lifetimes` still visits + /// the same lifetimes and is responsible for diagnostics. + /// See `rustc_resolve::late::lifetimes for details. + query resolve_lifetimes_trait_definition(_: LocalDefId) -> ResolveLifetimes { storage(ArenaCacheSelector<'tcx>) - desc { "resolving lifetimes in a definition" } + desc { "resolving lifetimes for a trait definition" } } - /// Lifetime resolution. See `middle::resolve_lifetimes`. + /// Does lifetime resolution on items. Importantly, we can't resolve + /// lifetimes directly on things like trait methods, because of trait params. + /// See `rustc_resolve::late::lifetimes for details. query resolve_lifetimes(_: LocalDefId) -> ResolveLifetimes { storage(ArenaCacheSelector<'tcx>) desc { "resolving lifetimes" } @@ -1270,6 +1276,10 @@ rustc_queries! { Option<(LocalDefId, &'tcx FxHashSet<ItemLocalId>)> { desc { "testing if a region is late bound" } } + /// For a given item (like a struct), gets the default lifetimes to be used + /// for each paramter if a trait object were to be passed for that parameter. + /// For example, for `struct Foo<'a, T, U>`, this would be `['static, 'static]`. + /// For `struct Foo<'a, T: 'a, U>`, this would instead be `['a, 'static]`. query object_lifetime_defaults_map(_: LocalDefId) -> Option<Vec<ObjectLifetimeDefault>> { desc { "looking up lifetime defaults for a region on an item" } |
