about summary refs log tree commit diff
path: root/compiler/rustc_attr_data_structures/src
AgeCommit message (Collapse)AuthorLines
2025-07-18Rollup merge of #143891 - scrabsha:push-xxtttopqoprr, r=jdonszelmannMatthias Krüger-0/+20
Port `#[coverage]` to the new attribute system r? ``````@jdonszelmann``````
2025-07-17Auto merge of #140399 - tiif:unstable_impl, r=lcnr,BoxyUwUbors-0/+4
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-16Port `#[coverage]` to the new attribute systemSasha Pourcelot-0/+20
2025-07-15Implement other logicstiif-0/+1
2025-07-15Setup unstable feature bound attributetiif-0/+3
2025-07-15Auto merge of #143958 - samueltardieu:rollup-lh1s143, r=samueltardieubors-0/+4
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-15Define datastructures for `#[cfg]` attribute, move StrippedCfgItemJonathan Brouwer-1/+26
2025-07-14Port `#[pointee]` to the new attribute parsing infrastructureJonathan Brouwer-0/+4
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-14Rollup merge of #143855 - JonathanBrouwer:omit_gdb_pretty_printer_section, ↵Samuel Tardieu-0/+4
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-14Rollup merge of #143217 - Periodic1911:link-ordinal, r=jdonszelmannJakub Beránek-0/+4
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-13Port `#[link_ordinal]` to the new attribute parsing infrastructure.Anne Stijns-0/+4
2025-07-12Port `#[omit_gdb_pretty_printer_section]` to the new attribute parsing ↵Jonathan Brouwer-0/+4
infrastructure Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-12Port `#[automatically_derived]` to the new attribute parsing infrastructureJonathan Brouwer-0/+4
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-09Port `#[rustc_coherence_is_core]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-09Port `#[rustc_allow_incoherent_impl]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-09Port `#[rustc_paren_sugar]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-09Port `#[fundamental]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-09Port `#[marker]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-09Port `#[rustc_unsafe_specialization_marker]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-09Port `#[rustc_specialization_trait]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-09Port `#[type_const]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-09Port `#[rustc_coinductive]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-09Port `#[rustc_do_not_implement_via_object]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-09Port `#[rustc_deny_explicit_impl]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-09Port `#[const_trait]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-08Rollup merge of #143593 - mejrs:dummy, r=jdonszelmannMatthias Krüger-0/+4
Port #[rustc_dummy] r? ``@jdonszelmann``
2025-07-07Port #[rustc_dummy]mejrs-0/+4
2025-07-07Port `#[rustc_std_internal_symbol]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-07Port `#[ffi_pure]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-07Port `#[ffi_const]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-07Port `#[export_stable]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-07Rollup merge of #143535 - reallesee:patch-1, r=jdonszelmannJacob Pratt-1/+1
Remove duplicate word Deleted a duplicated word to improve text clarity. contains contains - contains
2025-07-06Port `#[path]` to the new attribute parsing infrastructureJonathan Brouwer-0/+4
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-06Remove duplicate wordMicke-1/+1
2025-07-06Rewrite empty attribute lintJonathan Brouwer-4/+3
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-05Port `#[ignore]` to the new attribute parsing infrastructureJonathan Brouwer-0/+8
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-04Port `#[non_exhaustive]` to the new attribute parsing infrastructureJonathan Brouwer-0/+4
2025-07-04Rollup merge of #143400 - GrigorenkoPV:attributes/lints, r=jdonszelmannMatthias Krüger-6/+12
Port `#[rustc_pass_by_value]` to the new attribute system Part of rust-lang/rust#131229 r? `@oli-obk`
2025-07-04Port `#[rustc_pass_by_value]` to the new attribute systemPavel Grigorenko-0/+4
2025-07-03Port `#[no_implicit_prelude]` to the new attribute parsing infrastructureJonathan Brouwer-0/+4
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-03Add tidy-alphabetical for cross-crate attribute matchPavel Grigorenko-6/+8
2025-07-03Port `#[target_feature]` to the new attribute parsing infrastructureJonathan Brouwer-2/+6
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-07-01Port `#[rustc_object_lifetime_default]` to the new attribute parsing ↵Jonathan Brouwer-0/+4
infrastructure
2025-07-01Auto merge of #142921 - JonathanBrouwer:rustc_attributes_parser, r=oli-obkbors-0/+18
Port `#[rustc_layout_scalar_valid_range_start/end]` to the new attrib… Ports `rustc_layout_scalar_valid_range_start` and `rustc_layout_scalar_valid_range_end` to the new attribute parsing infrastructure for https://github.com/rust-lang/rust/issues/131229#issuecomment-2971353197 r? `@jdonszelmann`
2025-06-29Port #[link_section] to the new attribute parsing infrastructureAnne Stijns-0/+4
2025-06-28Port `#[link_name]` to the new attribute parsing infrastructureJonathan Brouwer-0/+4
Co-authored-by: Anne Stijns <anstijns@gmail.com> Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-06-27Port `#[rustc_layout_scalar_valid_range_start/end]` to the new attribute ↵Jonathan Brouwer-0/+18
parsing infrastructure Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-06-27Port `#[used]` to new attribute parsing infrastructureJonathan Brouwer-0/+15
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-06-26Port `#[export_name]` to the new attribute parsing infrastructureJonathan Brouwer-0/+9
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com>
2025-06-25encode_cross_crate for hir attributesJana Dönszelmann-0/+44