Jana Dönszelmann
866bc26475
Revert "Port #[allow_internal_unsafe] to the new attribute system"
...
This reverts commit 4f7a6ace9e2f2192af7b5d32f4b1664189e0e143.
2025-08-08 11:54:20 +02:00
Trevor Gross
8f519761a5
Rollup merge of #144857 - scrabsha:push-pwtyrnmqkrtr, r=jdonszelmann
...
Port `#[allow_internal_unsafe]` to the new attribute system
Related to https://github.com/rust-lang/rust/issues/131229#issue-2565886367 .
r? ````@jdonszelmann````
2025-08-07 19:36:35 -05:00
Sasha Pourcelot
4f7a6ace9e
Port #[allow_internal_unsafe] to the new attribute system
2025-08-07 15:47:21 +02:00
Stuart Cook
995ca3e532
Rollup merge of #143808 - JonathanBrouwer:should_panic_parser, r=jdonszelmann
...
Port `#[should_panic]` to the new attribute parsing infrastructure
Ports `#[should_panic]` to the new attribute parsing infrastructure for https://github.com/rust-lang/rust/issues/131229#issuecomment-2971351163
r? ```@jdonszelmann```
2025-08-07 20:49:40 +10:00
Jonathan Brouwer
f7ad4065fe
Port #[should_panic] to the new attribute parsing infrastructure
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-08-06 21:37:51 +02:00
Guillaume Gomez
96a41c5aba
Rollup merge of #144794 - scrabsha:push-noqrrttovmwy, r=jdonszelmann
...
Port `#[coroutine]` to the new attribute system
Related to https://github.com/rust-lang/rust/issues/131229#issue-2565886367 .
r? `````@jdonszelmann`````
2025-08-06 21:29:27 +02:00
Samuel Tardieu
149ee59876
Rollup merge of #144866 - JonathanBrouwer:should_emit_fix, r=jdonszelmann
...
Remove `SHOULD_EMIT_LINTS` in favor of `should_emit`
r? ``@jdonszelmann``
2025-08-05 03:51:37 +02:00
Sasha Pourcelot
904e2af3a9
Port #[coroutine] to the new attribute system
...
Related to https://github.com/rust-lang/rust/issues/131229#issue-2565886367 .
2025-08-04 18:37:40 +02:00
Samuel Tardieu
3823f0bc07
Rollup merge of #144738 - bjorn3:remove_omit_gdb_pretty_printer_section, r=jieyouxu
...
Remove the omit_gdb_pretty_printer_section attribute
Disabling loading of pretty printers in the debugger itself is more reliable. Before this commit the .gdb_debug_scripts section couldn't be included in dylibs or rlibs as otherwise there is no way to disable the section anymore without recompiling the entire standard library.
2025-08-03 21:56:56 +02:00
Jonathan Brouwer
f92934f43a
Remove SHOULD_EMIT_LINTS in favor of should_emit
2025-08-03 21:48:23 +02:00
bjorn3
ae2f8d9216
Remove the omit_gdb_pretty_printer_section attribute
...
Disabling loading of pretty printers in the debugger itself is more
reliable. Before this commit the .gdb_debug_scripts section couldn't be
included in dylibs or rlibs as otherwise there is no way to disable the
section anymore without recompiling the entire standard library.
2025-08-01 20:04:59 +00:00
Jonathan Brouwer
32cf3d48b3
Cleanup the definition of group_type
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-08-01 17:08:02 +02:00
Jana Dönszelmann
e1d3ad89c7
remove rustc_attr_data_structures
2025-07-31 14:19:27 +02:00
Jonathan Brouwer
2f50c7807c
Parsers for the attributes
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-26 20:25:40 +02:00
Jonathan Brouwer
a460b46d0f
Ports #[macro_use] and #[macro_escape] to the new attribute parsing infrastructure
2025-07-23 13:33:23 +02:00
Matthias Krüger
03734ae794
Rollup merge of #143891 - scrabsha:push-xxtttopqoprr, r=jdonszelmann
...
Port `#[coverage]` to the new attribute system
r? ``````@jdonszelmann``````
2025-07-18 04:27:52 +02:00
Matthias Krüger
52868368dd
Rollup merge of #143984 - JonathanBrouwer:fix-feature-gate-ice, r=Urgau
...
Fix ice for feature-gated `cfg` attributes applied to the crate
This PR fixes two fixes:
1. When a feature gated option of the `cfg` attribute is applied to the crate, an ICE would occur because features are not yet available at that stage. This is fixed by ignoring the feature gate at that point, the attribute will later be re-checked (this was already done) when the feature gate is available. Fixes https://github.com/rust-lang/rust/issues/143977
2. Errors and lints on the `cfg` attribute applied to the crate would be produced twice, because of the re-checking. This is fixed by not producing any errors and lints during the first run.
The added regression test checks both problems.
r? ``@jdonszelmann``
2025-07-17 10:41:49 +02:00
bors
014bd8290f
Auto merge of #140399 - tiif:unstable_impl, r=lcnr,BoxyUwU
...
Implement unstable trait impl
This PR allows marking impls of stable trait with stable type as unstable.
## Approach
In std/core, an impl can be marked as unstable by annotating it with ``#[unstable_feature_bound(feat_name)]``. This will add a ``ClauseKind::Unstable_Feature(feat_name)`` to the list of predicates in ``predicates_of`` .
When an unstable impl's function is called, we will first iterate through all the goals in ``param_env`` to check if there is any ``ClauseKind::UnstableFeature(feat_name)`` in ``param_env``.
The existence of ``ClauseKind::Unstable_Feature(feat_name)`` in ``param_env`` means an``#[unstable_feature_bound(feat_name)]`` is present at the call site of the function, so we allow the check to succeed in this case.
If ``ClauseKind::UnstableFeature(feat_name)`` does not exist in ``param_env``, we will still allow the check to succeed for either of the cases below:
1. The feature is enabled through ``#[feature(feat_name)]`` outside of std / core.
2. We are in codegen because we may be monomorphizing a body from an upstream crate which had an unstable feature enabled that the downstream crate do not.
For the rest of the case, it will fail with ambiguity.
## Limitation
In this PR, we do not support:
1. using items that need ``#[unstable_feature_bound]`` within stable APIs
2. annotate main function with ``#[unstable_feature_bound]``
3. annotate ``#[unstable_feature_bound]`` on items other than free function and impl
## Acknowledgement
The design and mentoring are done by `@BoxyUwU`
2025-07-17 01:57:55 +00:00
Sasha Pourcelot
4e054fc4c4
Port #[coverage] to the new attribute system
2025-07-16 15:51:18 +02:00
Jonathan Brouwer
8e400f97e5
Fix ice for feature-gated cfg attributes applied to the crate
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-15 23:28:15 +02:00
tiif
7356ff7517
Implement other logics
2025-07-15 13:48:30 +00:00
bors
e27f16a499
Auto merge of #143958 - samueltardieu:rollup-lh1s143, r=samueltardieu
...
Rollup of 13 pull requests
Successful merges:
- rust-lang/rust#142301 (tests: Fix duplicated-path-in-error fail with musl)
- rust-lang/rust#143630 (Drop `./x suggest`)
- rust-lang/rust#143736 (Give all bytes of TypeId provenance)
- rust-lang/rust#143752 (Don't panic if WASI_SDK_PATH not set when detecting compiler)
- rust-lang/rust#143837 (Adjust `run_make_support::symbols` helpers)
- rust-lang/rust#143878 (Port `#[pointee]` to the new attribute parsing infrastructure)
- rust-lang/rust#143905 (Recover and suggest to use `;` to construct array type)
- rust-lang/rust#143907 (core: make `str::split_at_unchecked()` inline)
- rust-lang/rust#143910 (Add experimental `backtrace-trace-only` std feature)
- rust-lang/rust#143927 (Preserve constness in trait objects up to hir ty lowering)
- rust-lang/rust#143935 (rustc_type_ir/walk: move docstring to `TypeWalker` itself)
- rust-lang/rust#143938 (Update books)
- rust-lang/rust#143941 (update `cfg_select!` documentation)
Failed merges:
- rust-lang/rust#143926 (Remove deprecated fields in bootstrap)
r? `@ghost`
`@rustbot` modify labels: rollup
2025-07-15 11:42:55 +00:00
Jonathan Brouwer
38dd6f5206
Allow Early stage to emit errors
2025-07-15 09:01:03 +02:00
Jonathan Brouwer
f0d0afab8e
Port #[pointee] to the new attribute parsing infrastructure
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-14 23:16:31 +02:00
Samuel Tardieu
bbda0c9fb5
Rollup merge of #143855 - JonathanBrouwer:omit_gdb_pretty_printer_section, r=jdonszelmann
...
Port `#[omit_gdb_pretty_printer_section]` to the new attribute parsing
Ports `#[omit_gdb_pretty_printer_section]` to the new attribute parsing infrastructure for https://github.com/rust-lang/rust/issues/131229#issuecomment-2971351163
r? ```@jdonszelmann```
2025-07-14 18:05:45 +02:00
Jakub Beránek
93c10272d0
Rollup merge of #143217 - Periodic1911:link-ordinal, r=jdonszelmann
...
Port #[link_ordinal] to the new attribute parsing infrastructure
Ports link_ordinal to the new attribute parsing infrastructure for https://github.com/rust-lang/rust/issues/131229#issuecomment-2971353197
2025-07-14 11:04:52 +02:00
bors
ad635e5d06
Auto merge of #143779 - JonathanBrouwer:automatically_derived_parser, r=oli-obk
...
Port `#[automatically_derived]` to the new attribute parsing infrastructure
Ports `#[automatically_derived]` to the new attribute parsing infrastructure for https://github.com/rust-lang/rust/issues/131229#issuecomment-2971351163
r? `@oli-obk`
cc `@jdonszelmann`
2025-07-14 04:29:53 +00:00
Anne Stijns
75561c446a
Port #[link_ordinal] to the new attribute parsing infrastructure.
2025-07-13 11:51:01 +02:00
León Orell Valerian Liehr
b0e559a976
Rollup merge of #143796 - JonathanBrouwer:fix-builtin-attribute-prefix, r=jdonszelmann
...
Fix ICE for parsed attributes with longer path not handled by CheckAttribute
Fixes https://github.com/rust-lang/rust/issues/137590
Fixes https://github.com/rust-lang/rust/issues/143789
r? ```@jdonszelmann```
2025-07-13 07:21:21 +02:00
Jonathan Brouwer
86349e31dd
Port #[omit_gdb_pretty_printer_section] to the new attribute parsing infrastructure
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-12 22:55:48 +02:00
Jonathan Brouwer
ef82007ed7
Port #[automatically_derived] to the new attribute parsing infrastructure
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-12 17:48:50 +02:00
Jonathan Brouwer
2f05fa6fff
Fix ICE for parsed attributes with longer path not handled by CheckAttrVisitor
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-11 17:02:57 +02:00
Pavel Grigorenko
e584ed0de2
Port #[rustc_coherence_is_core] to the new attribute system
2025-07-09 01:26:39 +03:00
Pavel Grigorenko
e9e64954e6
Port #[rustc_allow_incoherent_impl] to the new attribute system
2025-07-09 01:26:39 +03:00
Pavel Grigorenko
1bdf703171
Port #[rustc_paren_sugar] to the new attribute system
2025-07-09 01:26:39 +03:00
Pavel Grigorenko
507ebced16
Port #[fundamental] to the new attribute system
2025-07-09 01:26:27 +03:00
Pavel Grigorenko
12f6487d79
Port #[marker] to the new attribute system
2025-07-09 01:18:28 +03:00
Pavel Grigorenko
a57a885abc
Port #[rustc_unsafe_specialization_marker] to the new attribute system
2025-07-09 01:07:15 +03:00
Pavel Grigorenko
6193783961
Port #[rustc_specialization_trait] to the new attribute system
2025-07-09 01:07:12 +03:00
Pavel Grigorenko
813ec60744
Port #[type_const] to the new attribute system
2025-07-09 01:06:29 +03:00
Pavel Grigorenko
6f8e92d5aa
Port #[rustc_coinductive] to the new attribute system
2025-07-09 01:06:29 +03:00
Pavel Grigorenko
adb325fc16
Port #[rustc_do_not_implement_via_object] to the new attribute system
2025-07-09 01:05:21 +03:00
Pavel Grigorenko
938916d220
Port #[rustc_deny_explicit_impl] to the new attribute system
2025-07-09 01:04:35 +03:00
Pavel Grigorenko
62f58dbb2d
Port #[const_trait] to the new attribute system
2025-07-09 01:03:00 +03:00
Matthias Krüger
19a21289ba
Rollup merge of #143593 - mejrs:dummy, r=jdonszelmann
...
Port #[rustc_dummy]
r? ``@jdonszelmann``
2025-07-08 19:29:39 +02:00
mejrs
429deed03a
Port #[rustc_dummy]
2025-07-07 18:16:09 +02:00
Pavel Grigorenko
4f0b0b0f01
Port #[rustc_std_internal_symbol] to the new attribute system
2025-07-07 14:59:52 +03:00
Pavel Grigorenko
5d7771e50d
Port #[ffi_pure] to the new attribute system
2025-07-07 14:59:01 +03:00
Pavel Grigorenko
99a9fe1b22
Port #[ffi_const] to the new attribute system
2025-07-07 14:52:52 +03:00
Pavel Grigorenko
bb8b741c32
Port #[export_stable] to the new attribute system
2025-07-07 14:33:20 +03:00