mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 02:57:37 +00:00
Rollup merge of #138253 - mu001999-contrib:fix-138241, r=jdonszelmann
Continue to check attr if meet empty repr for adt Fixes #138241 Returning while checking ReprEmpty results in missing the check for the next repr
This commit is contained in:
commit
469f48db7f
@ -1998,7 +1998,7 @@ impl<'tcx> CheckAttrVisitor<'tcx> {
|
||||
// catch `repr()` with no arguments, applied to an item (i.e. not `#![repr()]`)
|
||||
if item.is_some() {
|
||||
match target {
|
||||
Target::Struct | Target::Union | Target::Enum => {}
|
||||
Target::Struct | Target::Union | Target::Enum => continue,
|
||||
Target::Fn | Target::Method(_) => {
|
||||
feature_err(
|
||||
&self.tcx.sess,
|
||||
|
9
tests/ui/repr/repr-empty-packed.rs
Normal file
9
tests/ui/repr/repr-empty-packed.rs
Normal file
@ -0,0 +1,9 @@
|
||||
//@ compile-flags: --crate-type=lib
|
||||
#![deny(unused_attributes)]
|
||||
|
||||
#[repr()] //~ ERROR unused attribute
|
||||
#[repr(packed)] //~ ERROR attribute should be applied to a struct or union
|
||||
pub enum Foo {
|
||||
Bar,
|
||||
Baz(i32),
|
||||
}
|
27
tests/ui/repr/repr-empty-packed.stderr
Normal file
27
tests/ui/repr/repr-empty-packed.stderr
Normal file
@ -0,0 +1,27 @@
|
||||
error: unused attribute
|
||||
--> $DIR/repr-empty-packed.rs:4:1
|
||||
|
|
||||
LL | #[repr()]
|
||||
| ^^^^^^^^^ help: remove this attribute
|
||||
|
|
||||
= note: attribute `repr` with an empty list has no effect
|
||||
note: the lint level is defined here
|
||||
--> $DIR/repr-empty-packed.rs:2:9
|
||||
|
|
||||
LL | #![deny(unused_attributes)]
|
||||
| ^^^^^^^^^^^^^^^^^
|
||||
|
||||
error[E0517]: attribute should be applied to a struct or union
|
||||
--> $DIR/repr-empty-packed.rs:5:8
|
||||
|
|
||||
LL | #[repr(packed)]
|
||||
| ^^^^^^
|
||||
LL | / pub enum Foo {
|
||||
LL | | Bar,
|
||||
LL | | Baz(i32),
|
||||
LL | | }
|
||||
| |_- not a struct or union
|
||||
|
||||
error: aborting due to 2 previous errors
|
||||
|
||||
For more information about this error, try `rustc --explain E0517`.
|
Loading…
Reference in New Issue
Block a user