rust/compiler
bors c95346b8ac Auto merge of #91557 - cjgillot:ast-lifetimes-named, r=petrochenkov
Perform lifetime resolution on the AST for lowering

Lifetime resolution is currently implemented several times. Once during lowering in order to introduce in-band lifetimes, and once in the resolve_lifetimes query. However, due to the global nature of lifetime resolution and how it interferes with hygiene, it is better suited on the AST.

This PR implements a first draft of lifetime resolution on the AST. For now, we specifically target named lifetimes and everything we need to remove lifetime resolution from lowering. Some diagnostics have already been ported, and sometimes made more precise using available hygiene information. Follow-up PRs will address in particular the resolution of anonymous lifetimes on the AST.

We reuse the rib design of the current resolution framework. Specific `LifetimeRib` and `LifetimeRibKind` types are introduced. The most important variant is `LifetimeRibKind::Generics`, which happens each time we encounter something which may introduce generic lifetime parameters. It can be an item or a `for<...>` binder. The `LifetimeBinderKind` specifies how this rib behaves with respect to in-band lifetimes.

r? `@petrochenkov`
2022-04-27 23:13:28 +00:00
..
rustc Propagate parallel_compiler feature through rustc crates. Turned off feature gives change of builded crates: 238 -> 224. 2022-03-28 08:41:12 +03:00
rustc_apfloat Addressed comments by @compiler-errors and @bjorn3 2022-03-30 17:04:46 -04:00
rustc_arena mark FIXMES for all the places found that are probably offset_from 2022-03-29 20:18:28 -04:00
rustc_ast Auto merge of #96246 - SparrowLii:bound_contxet, r=compiler-errors 2022-04-25 10:46:58 +00:00
rustc_ast_lowering Auto merge of #91557 - cjgillot:ast-lifetimes-named, r=petrochenkov 2022-04-27 23:13:28 +00:00
rustc_ast_passes rename to BoundKind and add comments 2022-04-21 10:09:32 +08:00
rustc_ast_pretty Rollup merge of #94985 - dtolnay:constattr, r=pnkfelix 2022-04-16 19:42:00 +02:00
rustc_attr Rollup merge of #94948 - jhpratt:rustc_deprecated, r=Dylan-DPC 2022-03-20 09:14:59 +01:00
rustc_borrowck Rollup merge of #96385 - marmeladema:nll-fix-trait-lifetime-bound-suggestions, r=jackh726 2022-04-27 02:47:11 +02:00
rustc_builtin_macros Auto merge of #94468 - Amanieu:global_asm_sym, r=nagisa 2022-04-16 04:46:01 +00:00
rustc_codegen_cranelift Merge commit 'f2cdd4a78d89c009342197cf5844a21f8aa813df' into sync_cg_clif-2022-04-22 2022-04-22 21:11:38 +02:00
rustc_codegen_gcc Rollup merge of #95740 - Amanieu:kreg0, r=nagisa 2022-04-19 22:57:39 +02:00
rustc_codegen_llvm Auto merge of #95604 - nbdd0121:used2, r=petrochenkov 2022-04-25 16:14:54 +00:00
rustc_codegen_ssa Auto merge of #95604 - nbdd0121:used2, r=petrochenkov 2022-04-25 16:14:54 +00:00
rustc_const_eval Relax restrictions for copy operands 2022-04-22 16:45:15 -04:00
rustc_data_structures incr. comp.: Don't export impl_stable_hash_via_hash!() and warn about using it. 2022-04-19 10:43:20 +02:00
rustc_driver errors: lazily load fallback fluent bundle 2022-04-13 02:44:59 +01:00
rustc_error_codes rework error messages for incorrect inherent impls 2022-03-30 11:23:58 +02:00
rustc_error_messages Rollup merge of #96029 - IsakNyberg:error-messages-fix, r=Dylan-DPC 2022-04-19 22:57:41 +02:00
rustc_errors Rollup merge of #96149 - est31:remove_unused_macro_matchers, r=petrochenkov 2022-04-26 01:21:20 +02:00
rustc_expand start tracking proc-macros expansion spans in the self-profiler 2022-04-22 18:35:31 +02:00
rustc_feature Rollup merge of #94457 - jhpratt:stabilize-derive_default_enum, r=davidtwco 2022-04-15 20:50:43 +02:00
rustc_fs_util Migrate to 2021 2021-09-20 22:21:42 -04:00
rustc_graphviz eplace usages of vec![].into_iter with [].into_iter 2022-01-09 14:09:25 +11:00
rustc_hir Auto merge of #91557 - cjgillot:ast-lifetimes-named, r=petrochenkov 2022-04-27 23:13:28 +00:00
rustc_hir_pretty Stop pretty-printing HIR visibility. 2022-04-23 09:55:25 +02:00
rustc_incremental Rollup merge of #95434 - cjgillot:dump-dep-kind, r=oli-obk 2022-04-21 20:55:18 +02:00
rustc_index Spellchecking compiler comments 2022-03-30 15:14:15 -04:00
rustc_infer Recover most impl Trait and dyn Trait lifetime bound suggestions under NLL 2022-04-25 09:14:44 +02:00
rustc_interface Rollup merge of #96090 - JakobDegen:mir-tests, r=nagisa 2022-04-25 00:10:59 +02:00
rustc_lexer Reduce max hash in raw strings from u16 to u8 2022-03-23 22:13:55 +01:00
rustc_lint Fix lints. 2022-04-23 23:01:19 +02:00
rustc_lint_defs Auto merge of #96082 - michaelwoerister:less_impl_stable_hash_via_hash, r=compiler-errors 2022-04-20 03:51:09 +00:00
rustc_llvm Stub out more PassManagerBuilder functions 2022-04-20 09:36:02 +02:00
rustc_log Make rustc_log doc test runnable 2022-01-03 22:31:56 -08:00
rustc_macros macros: update doc comment for diagnostic derive 2022-04-21 04:22:18 +01:00
rustc_metadata Auto merge of #95604 - nbdd0121:used2, r=petrochenkov 2022-04-25 16:14:54 +00:00
rustc_middle Auto merge of #96425 - oli-obk:fix_incremental_regression_unsafety_checking, r=compiler-errors 2022-04-26 22:35:40 +00:00
rustc_mir_build only show a simple description in E0133 span label 2022-04-24 18:33:07 +02:00
rustc_mir_dataflow Add new MutatatingUseContexts for deinit and SetDiscriminant 2022-04-11 09:26:26 -04:00
rustc_mir_transform Revert "add DefId to unsafety violations and display function path in E0133" 2022-04-26 14:49:28 +00:00
rustc_monomorphize Auto merge of #95604 - nbdd0121:used2, r=petrochenkov 2022-04-25 16:14:54 +00:00
rustc_parse Better handle too many # recovery in raw str 2022-04-23 19:51:11 -07:00
rustc_parse_format Spellchecking compiler comments 2022-03-30 15:14:15 -04:00
rustc_passes Auto merge of #95604 - nbdd0121:used2, r=petrochenkov 2022-04-25 16:14:54 +00:00
rustc_plugin_impl replace dynamic library module with libloading 2021-12-06 12:03:47 -05:00
rustc_privacy Compute has_pub_restricted in the resolver. 2022-04-23 23:03:18 +02:00
rustc_query_impl Stop using CRATE_DEF_INDEX. 2022-04-17 12:14:42 +02:00
rustc_query_system Remove NodeIdHashingMode. 2022-04-12 19:59:32 +02:00
rustc_resolve Auto merge of #91557 - cjgillot:ast-lifetimes-named, r=petrochenkov 2022-04-27 23:13:28 +00:00
rustc_save_analysis Drop vis in ImplItem. 2022-04-23 09:57:00 +02:00
rustc_serialize Remove unused macro rules 2022-04-18 23:28:06 +02:00
rustc_session Rollup merge of #96090 - JakobDegen:mir-tests, r=nagisa 2022-04-25 00:10:59 +02:00
rustc_span extend EventArgRecorder into span-aware SpannedEventArgRecorder 2022-04-22 18:06:21 +02:00
rustc_symbol_mangling Auto merge of #95655 - kckeiks:create-hir-crate-items-query, r=cjgillot 2022-04-17 08:06:53 +00:00
rustc_target Rollup merge of #96415 - ehuss:git-io, r=bjorn3 2022-04-26 13:22:31 +02:00
rustc_trait_selection do not consider two extern types to be similar 2022-04-25 08:51:26 +02:00
rustc_traits Remove opaque type obligation and just register opaque types as they are encountered. 2022-03-28 16:57:45 +00:00
rustc_ty_utils Avoid accessing HIR from MIR queries. 2022-04-10 13:08:36 +02:00
rustc_type_ir Revert "Auto merge of #93893 - oli-obk:sad_revert, r=oli-obk" 2022-03-28 16:27:14 +00:00
rustc_typeck Rollup merge of #96383 - compiler-errors:issue-96381, r=estebank 2022-04-27 02:47:10 +02:00