granite-rust/compiler
Dylan DPC d7a24003d8
Rollup merge of - dtolnay:rustc_const_stable, r=lcnr
Handle rustc_const_stable attribute in library feature collector

The library feature collector in [compiler/rustc_passes/src/lib_features.rs](551b4fa395/compiler/rustc_passes/src/lib_features.rs) has only been looking at `#[stable(…)]`, `#[unstable(…)]`, and `#[rustc_const_unstable(…)]` attributes, while ignoring `#[rustc_const_stable(…)]`. The consequences of this were:

- When any const feature got stabilized (changing one or more `rustc_const_unstable` to `rustc_const_stable`), users who had previously enabled that unstable feature using `#![feature(…)]` would get told "unknown feature", rather than rustc's nicer "the feature … has been stable since … and no longer requires an attribute to enable".

    This can be seen in the way that https://github.com/rust-lang/rust/pull/93957#issuecomment-1079794660 failed after rebase:

    ```console
    error[E0635]: unknown feature `const_ptr_offset`
      --> $DIR/offset_from_ub.rs:1:35
       |
    LL | #![feature(const_ptr_offset_from, const_ptr_offset)]
       |                                   ^^^^^^^^^^^^^^^^
    ```

- We weren't enforcing that a particular feature is either stable everywhere or unstable everywhere, and that a feature that has been stabilized has the same stabilization version everywhere, both of which we enforce for the other stability attributes.

This PR updates the library feature collector to handle `rustc_const_stable`, and fixes places in the standard library and test suite where `rustc_const_stable` was being used in a way that does not meet the rules for a stability attribute.
2022-04-02 03:34:21 +02: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 Rollup merge of - nyurik:compiler-spell-comments, r=compiler-errors 2022-03-31 04:57:28 +02:00
rustc_ast_lowering Record item-likes in ItemLowerer. 2022-03-31 13:48:16 +02:00
rustc_ast_passes Stabilize native library modifier syntax and the whole-archive modifier specifically 2022-03-30 23:53:21 +03:00
rustc_ast_pretty Remove Nonterminal::NtTT. 2022-03-28 10:03:02 +11:00
rustc_attr Rollup merge of - jhpratt:rustc_deprecated, r=Dylan-DPC 2022-03-20 09:14:59 +01:00
rustc_borrowck update comment 2022-03-31 15:41:52 +02:00
rustc_builtin_macros Spellchecking some comments 2022-03-30 01:39:38 -04:00
rustc_codegen_cranelift Addressed comments by @compiler-errors and @bjorn3 2022-03-30 17:04:46 -04:00
rustc_codegen_gcc Rollup merge of - nyurik:spelling, r=lcnr 2022-03-30 09:10:07 +02:00
rustc_codegen_llvm Rollup merge of - nyurik:spelling, r=lcnr 2022-03-30 09:10:07 +02:00
rustc_codegen_ssa Rollup merge of - nyurik:compiler-spell-comments, r=compiler-errors 2022-03-31 04:57:28 +02:00
rustc_const_eval Auto merge of - cjgillot:flat-metadata, r=oli-obk 2022-04-01 21:16:41 +00:00
rustc_data_structures Auto merge of - Dylan-DPC:rollup-g7ddr8y, r=Dylan-DPC 2022-03-30 07:45:42 +00:00
rustc_driver 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_error_codes rework error messages for incorrect inherent impls 2022-03-30 11:23:58 +02:00
rustc_errors Spellchecking some comments 2022-03-30 01:39:38 -04:00
rustc_expand expand: Do not count metavar declarations on RHS of macro_rules 2022-03-31 19:09:40 +03:00
rustc_feature Rollup merge of - jackh726:gats_extended, r=compiler-errors 2022-03-31 00:26:29 +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 Store next_disambiguator in Definitions. 2022-03-31 13:34:54 +02:00
rustc_hir_pretty resolve: Fix incorrect results of opt_def_kind query for some built-in macros 2022-02-24 22:54:36 +03:00
rustc_incremental Spellchecking some comments 2022-03-30 01:39:38 -04:00
rustc_index Spellchecking compiler comments 2022-03-30 15:14:15 -04:00
rustc_infer Rollup merge of - compiler-errors:fn, r=davidtwco 2022-04-01 06:59:41 +02:00
rustc_interface Stop emitting lints during lowering. 2022-03-31 13:46:06 +02:00
rustc_lexer Reduce max hash in raw strings from u16 to u8 2022-03-23 22:13:55 +01:00
rustc_lint Spellchecking compiler comments 2022-03-30 15:14:15 -04:00
rustc_lint_defs Spellchecking compiler comments 2022-03-30 15:14:15 -04:00
rustc_llvm Stabilize native library modifier syntax and the whole-archive modifier specifically 2022-03-30 23:53:21 +03:00
rustc_log Make rustc_log doc test runnable 2022-01-03 22:31:56 -08:00
rustc_macros add #[rustc_pass_by_value] to more types 2022-03-08 15:39:52 +01:00
rustc_metadata Merge impl_constness and is_const_fn_raw. 2022-03-31 18:33:46 +02:00
rustc_middle Auto merge of - cjgillot:flat-metadata, r=oli-obk 2022-04-01 21:16:41 +00:00
rustc_mir_build obligation cause: RepeatVec -> RepeatValueCopy 2022-03-31 12:51:46 +02:00
rustc_mir_dataflow Spellchecking compiler comments 2022-03-30 15:14:15 -04:00
rustc_mir_transform Rollup merge of - nyurik:compiler-spell-comments, r=compiler-errors 2022-03-31 04:57:28 +02:00
rustc_monomorphize Rollup merge of - InfRandomness:infrandomness/lint_largemove_note, r=compiler-errors 2022-03-31 13:09:53 +02:00
rustc_parse Rollup merge of - compiler-errors:braces, r=davidtwco 2022-04-01 06:59:42 +02:00
rustc_parse_format Spellchecking compiler comments 2022-03-30 15:14:15 -04:00
rustc_passes Rollup merge of - dtolnay:rustc_const_stable, r=lcnr 2022-04-02 03:34:21 +02:00
rustc_plugin_impl replace dynamic library module with libloading 2021-12-06 12:03:47 -05:00
rustc_privacy Rollup merge of - nyurik:compiler-spell-comments, r=compiler-errors 2022-03-31 04:57:28 +02:00
rustc_query_impl rework implementation for inherent impls for builtin types 2022-03-30 11:23:58 +02:00
rustc_query_system Spellchecking compiler comments 2022-03-30 15:14:15 -04:00
rustc_resolve Stop emitting lints during lowering. 2022-03-31 13:46:06 +02:00
rustc_save_analysis Rollup merge of - nyurik:compiler-spell-comments, r=compiler-errors 2022-03-31 04:57:28 +02:00
rustc_serialize Delete Decoder::read_unit 2022-02-22 18:14:51 -05:00
rustc_session Stabilize native library modifier syntax and the whole-archive modifier specifically 2022-03-30 23:53:21 +03:00
rustc_span Rollup merge of - nyurik:compiler-spell-comments, r=compiler-errors 2022-03-31 04:57:28 +02:00
rustc_symbol_mangling resolve the conflict in compiler/rustc_session/src/parse.rs 2022-03-16 20:12:30 +08:00
rustc_target Auto merge of - RalfJung:size, r=oli-obk 2022-03-31 10:33:56 +00:00
rustc_trait_selection Rollup merge of - compiler-errors:fn, r=davidtwco 2022-04-01 06:59:41 +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 Auto merge of - cjgillot:flat-metadata, r=oli-obk 2022-04-01 21:16:41 +00:00
rustc_type_ir Revert "Auto merge of - oli-obk:sad_revert, r=oli-obk" 2022-03-28 16:27:14 +00:00
rustc_typeck Auto merge of - cjgillot:flat-metadata, r=oli-obk 2022-04-01 21:16:41 +00:00