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
mejrs
a7bf5c4fa2
Split up the unknown_or_malformed_diagnostic_attributes lint
2025-07-11 01:24:24 +02:00
Mu001999
889582e704
Check assoc consts and tys later like assoc fns
2025-07-10 23:39:54 +08:00
Oli Scherer
486ffda9dc
Add opaque TypeId handles for CTFE
2025-07-09 16:37:11 +00: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
Jacob Pratt
7eea141b87
Rollup merge of #143544 - workingjubilee:rename-bare-fn, r=fmease
...
compiler: rename BareFn to FnPtr
At some point "BareFn" was the chosen name for a "bare" function, without the niceties of `~fn`, `&fn`, or a few other ways of writing a function type. However, at some point the syntax for a "bare function" and any other function diverged even more. We started calling them what they are: function pointers, denoted by their own syntax.
However, we never changed the *internal* name for these, as this divergence was very gradual. Personally, I have repeatedly searched for "FnPtr" and gotten confused until I find the name is BareFn, only to forget this until the next time, since I don't routinely interact with the higher-level AST and HIR. But even tools that interact with these internal types only touch on them in a few places, making a migration easy enough. Let's use a more intuitive and obvious name, as this 12+ year old name has little to do with current Rust.
2025-07-07 03:26:09 +02:00
Jacob Pratt
11b24c108d
Rollup merge of #143344 - JonathanBrouwer:path-parser, r=jdonszelmann
...
Port `#[path]` to the new attribute parsing infrastructure
Ports `#[path]` to the new attribute parsing infrastructure for https://github.com/rust-lang/rust/issues/131229#issuecomment-2971353197
This PR duplicates a change from https://github.com/rust-lang/rust/pull/143237
Draft until that one is merged
2025-07-07 03:26:06 +02:00
Jubilee Young
0a4f87a144
compiler: rename {ast,hir}::BareFn* to FnPtr*
...
Fix some comments and related types and locals where it is obvious, e.g.
- bare_fn -> fn_ptr
- LifetimeBinderKind::BareFnType -> LifetimeBinderKind::FnPtrType
Co-authored-by: León Orell Valerian Liehr <me@fmease.dev >
2025-07-06 15:03:08 -07:00
Jules Bertholet
a1cefee8d5
Support #[align(…)] on fns in extern blocks
2025-07-06 16:56:41 -04:00
Jules Bertholet
97a7b9b1b4
Remove repr(align) code
2025-07-06 16:56:39 -04:00
Jonathan Brouwer
244d64e60b
Port #[path] to the new attribute parsing infrastructure
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com >
2025-07-06 22:19:16 +02:00
Matthias Krüger
017fe2fb8f
Rollup merge of #143252 - JonathanBrouwer:rewrite_empty_attribute, r=jdonszelmann
...
Rewrite empty attribute lint for new attribute parser
cc `@jdonszelmann`
2025-07-06 15:56:12 +02:00
Matthias Krüger
6fb00b1514
Rollup merge of #143477 - folkertdev:use-is-multiple-of, r=joshtriplett
...
use `is_multiple_of` and `div_ceil`
In tricky logic, these functions are much more informative than the manual implementations. They also catch subtle bugs:
- the manual `is_multiple_of` often does not handle division by zero
- manual `div_ceil` often does not consider overflow
The transformation is free for `is_multiple_of` if the divisor is compile-time known to be non-zero. For `div_ceil` there is a small cost to considering overflow. Here is some assembly https://godbolt.org/z/5zP8KaE1d .
2025-07-06 10:03:23 +02:00
Jonathan Brouwer
3fa0ec91d8
Rewrite empty attribute lint
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com >
2025-07-06 09:51:35 +02:00
Jonathan Brouwer
2d8ffff10a
Port #[ignore] to the new attribute parsing infrastructure
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com >
2025-07-05 21:23:09 +02:00
Folkert de Vries
ed3711ea29
use div_ceil instead of manual logic
2025-07-05 10:55:42 +02:00
Jonathan Brouwer
027126ce0b
Port #[non_exhaustive] to the new attribute parsing infrastructure
2025-07-04 20:30:42 +02:00
Matthias Krüger
f3e7ec5560
Rollup merge of #143400 - GrigorenkoPV:attributes/lints, r=jdonszelmann
...
Port `#[rustc_pass_by_value]` to the new attribute system
Part of rust-lang/rust#131229
r? `@oli-obk`
2025-07-04 16:22:36 +02:00
Pavel Grigorenko
ef4dece2cb
Port #[rustc_pass_by_value] to the new attribute system
2025-07-04 00:07:56 +03:00
Jonathan Brouwer
fee5e3c3aa
Port #[no_implicit_prelude] to the new attribute parsing infrastructure
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com >
2025-07-03 20:59:40 +02:00
Jana Dönszelmann
5026d0cd8e
Rollup merge of #142876 - JonathanBrouwer:target_feature_parser, r=oli-obk
...
Port `#[target_feature]` to new attribute parsing infrastructure
Ports `target_feature` to the new attribute parsing infrastructure for https://github.com/rust-lang/rust/issues/131229#issuecomment-2971353197
r? ``@jdonszelmann``
2025-07-03 13:29:36 +02:00
klensy
c76d032f01
setup CI and tidy to use typos for spellchecking and fix few typos
2025-07-03 10:51:06 +03:00
Jonathan Brouwer
3d5d72b761
Port #[target_feature] to the new attribute parsing infrastructure
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com >
2025-07-03 07:54:19 +02:00
Guillaume Gomez
189bfc1e63
Rollup merge of #143279 - GuillaumeGomez:rm-itemkind-descr, r=oli-obk
...
Remove `ItemKind::descr` method
Follow-up of rust-lang/rust#143234 .
After this PR is merged, it will remain two `descr` methods:
* `hir::GenericArg::descr`
* `hir::AssocItemConstraintKind::descr`
For both these enums, I don't think there is the right equivalent in `hir::DefKind` so unless I missed something, we can't remove these two methods because we can't convert these enums into `hir::DefKind`.
r? `@oli-obk`
2025-07-01 17:47:06 +02:00
Jonathan Brouwer
1e474c2c6c
Port #[rustc_object_lifetime_default] to the new attribute parsing infrastructure
2025-07-01 16:31:23 +02:00
Guillaume Gomez
022c91465a
Remove ItemKind::descr method
2025-07-01 14:36:28 +02:00
bors
86e05cd300
Auto merge of #142921 - JonathanBrouwer:rustc_attributes_parser, r=oli-obk
...
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-07-01 08:33:00 +00:00
Anne Stijns
54cec0cf5a
Port #[link_section] to the new attribute parsing infrastructure
2025-06-29 16:23:46 +02:00
Jonathan Brouwer
1249c14232
Port #[link_name] to the new attribute parsing infrastructure
...
Co-authored-by: Anne Stijns <anstijns@gmail.com >
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com >
2025-06-28 13:53:37 +02:00
Jonathan Brouwer
f98ea3d144
Port #[rustc_layout_scalar_valid_range_start/end] to the new attribute parsing infrastructure
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com >
2025-06-27 09:08:21 +02:00
Jonathan Brouwer
9e35684072
Port #[used] to new attribute parsing infrastructure
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com >
2025-06-27 08:58:26 +02:00
Jonathan Brouwer
3d1cee5324
Move mixed export_name/no_mangle check to check_attr.rs and improve the error
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com >
2025-06-26 08:50:42 +02:00
Jonathan Brouwer
287d9afce7
Port #[export_name] to the new attribute parsing infrastructure
...
Signed-off-by: Jonathan Brouwer <jonathantbrouwer@gmail.com >
2025-06-26 08:50:42 +02:00