about summary refs log tree commit diff
path: root/src/librustc/middle/resolve_lifetime.rs
AgeCommit message (Collapse)AuthorLines
2020-03-30rustc -> rustc_middle part 1Mazdak Farrokhzad-86/+0
2020-01-05Remove rustc_hir reexports in rustc::hir.Mazdak Farrokhzad-3/+3
2020-01-04canonicalize FxHash{Map,Set} importsMazdak Farrokhzad-1/+1
2019-12-31Simplify ResolveLiftimes creation.Camille GILLOT-54/+13
2019-12-31Review comments.Camille GILLOT-6/+1
2019-12-31Move resolve_lifetimes query in librustc_resolve.Camille GILLOT-0/+132
2019-12-31Move resolve_lifetime.rs to librustc_resolve.Camille GILLOT-2931/+0
2019-12-30Remove HirVec from Generics.Camille GILLOT-5/+5
2019-12-27Visit for hir::Ty.Camille GILLOT-22/+21
2019-12-27Syntax for hir::Ty.Camille GILLOT-28/+41
2019-12-26Syntax for hir::Expr.Camille GILLOT-2/+2
2019-12-24x.py fmt after previous deignoreMark Rousskov-384/+233
2019-12-21Use Arena inside hir::Body.Camille GILLOT-1/+1
2019-12-21Use Arena inside hir::ImplItem.Camille GILLOT-1/+1
2019-12-21Use Arena inside hir::TraitItem.Camille GILLOT-1/+1
2019-12-21Use Arena inside hir::ForeignItem.Camille GILLOT-1/+1
2019-12-21Use Arena inside hir::Item.Camille GILLOT-2/+2
2019-11-19More HashStable.Camille GILLOT-7/+1
2019-11-14Update to use new librustc_error_codes libraryGuillaume Gomez-0/+2
2019-11-08hir::ItemKind::Fn: use hir::MethodSigMazdak Farrokhzad-4/+4
2019-11-05use American spelling for `pluralize!`Andy Russell-2/+2
2019-10-15Rollup merge of #64603 - gilescope:unused-lifetime-warning, r=matthewjasperTyler Mandry-1/+7
Reducing spurious unused lifetime warnings. Fixes #61115, fixes #64493.
2019-10-15Avoid unused lifetime warning for lifetimes introduced when desugering async.Giles Cope-1/+7
2019-09-28rustc: don't store a lifetime in hir::TyKind::CVarArgs.Eduard-Mihai Burtescu-8/+0
2019-09-26Rename `ForeignItem.node` to `ForeignItem.kind`varkor-1/+1
2019-09-26Rename `Item.node` to `Item.kind`varkor-13/+12
2019-09-26Rename `Ty.node` to `Ty.kind`varkor-11/+11
2019-09-26Rename `TraitItem.node` to `TraitItem.kind`varkor-3/+3
2019-09-26Rename `ImplItem.node` to `ImplItem.kind`varkor-4/+4
2019-09-26Rename `Expr.node` to `Expr.kind`varkor-1/+1
For both `ast::Expr` and `hir::Expr`.
2019-09-20factor out pluralisation remains after #64280gaolei-2/+2
2019-08-27Cleanup: Consistently use `Param` instead of `Arg` #62426Kevin Per-1/+1
2019-08-19use static as object-lifetime default for type XX in `Foo<Item=XX>`Niko Matsakis-1/+70
Currently the default is "inherited" from context, so e.g. `&impl Foo<Item = dyn Bar>` would default to `&'x impl Foo<Item = dyn Bar + 'x>`, but this triggers an ICE and is not very consistent. This patch doesn't implement what I expect would be the correct semantics, because those are likely too complex. Instead, it handles what I'd expect to be the common case -- where the trait has no lifetime parameters.
2019-08-19distinguish object-lifetime-default elision from other elisionNiko Matsakis-0/+17
Object-lifetime-default elision is distinct from other forms of elision; it always refers to some enclosing lifetime *present in the surrounding type* (e.g., `&dyn Bar` expands to `&'a (dyn Bar + 'a)`. If there is no enclosing lifetime, then it expands to `'static`. Therefore, in an `impl Trait<Item = dyn Bar>` setting, we don't expand to create a lifetime parameter for the `dyn Bar + 'X` bound. It will just be resolved to `'static`. Annoyingly, the responsibility for this resolution is spread across multiple bits of code right now (`middle::resolve_lifetimes`, `lowering`). The lowering code knows that the default is for an object lifetime, but it doesn't know what the correct result would be. Probably this should be fixed, but what we do now is a surgical fix: we have it generate a different result for elided lifetimes in a object context, and then we can ignore those results when figuring out the lifetimes that are captured in the opaque type.
2019-08-19add debug logsNiko Matsakis-0/+5
2019-08-04Rename `ItemImplKind::Type` to `ItemImplKind::TyAlias`varkor-1/+1
2019-08-04Rename `ItemKind::Ty` to `ItemKind::TyAlias`varkor-2/+2
2019-08-02Replace `exist_ty` and `ExistTy` with `opaque_ty` and `OpaqueTy`varkor-5/+5
2019-08-02Replace `abstract type` with type alias `impl Trait`varkor-24/+24
2019-08-02Replace "existential" by "opaque"varkor-12/+12
2019-07-28Disallow duplicate lifetime parameters with legacy hygieneMatthew Jasper-1/+1
They were resolved with modern hygiene, making this just a strange way to shadow lifetimes.
2019-07-27Use Set1<Region> instead of Option<Region>Taiki Endo-5/+6
2019-07-27Make is_self_ty a method on SelfVisitorTaiki Endo-32/+35
2019-07-27Remove query for `.pin_type()`Taiki Endo-34/+32
2019-07-27Allow lifetime elision in `Pin<&(mut) Self>`Taiki Endo-1/+28
2019-07-23normalize use of backticks for compiler messages in remaining modulesSamy Kacimi-1/+1
https://github.com/rust-lang/rust/issues/60532
2019-07-06in which we suggest anonymizing single-use lifetimes in pathsZack M. Davis-25/+56
2019-07-06Remove ExprKind::While from HIR.Mazdak Farrokhzad-5/+4
2019-07-04rename hir::map::local_def_id_from_hir_id to local_def_idljedrz-5/+5
2019-07-04Rollup merge of #62249 - czipperz:use-mem-take-instead-of-replace-default, ↵Mazdak Farrokhzad-5/+4
r=dtolnay,Centril Use mem::take instead of mem::replace with default