Skip to content

Commit f39fdb0

Browse files
authored
Rollup merge of rust-lang#144544 - JonathanBrouwer:illformed-in-deps, r=traviscross
Start reporting future breakage for `ILL_FORMED_ATTRIBUTE_INPUT` in dependencies This has been a warn lint since early 2019 and a deny-by-default lint since late 2019. We're currently transitioning some of the cases where this lint is being produced to a hard error (rust-lang#143607 rust-lang#143808 and more) So let's report this lint in all dependencies for the remaining attributes r? `@traviscross` `@rustbot` labels +I-lang-nominated +T-lang -T-compiler cc `@jdonszelmann` (Separate question: Why does the "Future incompatibility report" only trigger if `report_in_deps` is true, even if the future incompatibility happens in the same crate, is this correct?) This also needs a crater run, but I don't have permissions to trigger this
2 parents 1d39978 + 7bd902d commit f39fdb0

File tree

7 files changed

+177
-0
lines changed

7 files changed

+177
-0
lines changed

compiler/rustc_lint_defs/src/builtin.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,7 @@ declare_lint! {
217217
@future_incompatible = FutureIncompatibleInfo {
218218
reason: FutureIncompatibilityReason::FutureReleaseError,
219219
reference: "issue #57571 <https://github.com/rust-lang/rust/issues/57571>",
220+
report_in_deps: true,
220221
};
221222
crate_level_only
222223
}

tests/ui/attributes/lint_on_root.stderr

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,14 @@ LL | #![inline = ""]
1010

1111
error: aborting due to 1 previous error
1212

13+
Future incompatibility report: Future breakage diagnostic:
14+
error: valid forms for the attribute are `#[inline(always|never)]` and `#[inline]`
15+
--> $DIR/lint_on_root.rs:3:1
16+
|
17+
LL | #![inline = ""]
18+
| ^^^^^^^^^^^^^^^
19+
|
20+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
21+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
22+
= note: `#[deny(ill_formed_attribute_input)]` on by default
23+

tests/ui/attributes/malformed-attrs.stderr

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -660,3 +660,69 @@ error: aborting due to 74 previous errors; 3 warnings emitted
660660

661661
Some errors have detailed explanations: E0308, E0463, E0539, E0565, E0658, E0805.
662662
For more information about an error, try `rustc --explain E0308`.
663+
Future incompatibility report: Future breakage diagnostic:
664+
error: valid forms for the attribute are `#[doc(hidden|inline|...)]` and `#[doc = "string"]`
665+
--> $DIR/malformed-attrs.rs:44:1
666+
|
667+
LL | #[doc]
668+
| ^^^^^^
669+
|
670+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
671+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
672+
= note: `#[deny(ill_formed_attribute_input)]` on by default
673+
674+
Future breakage diagnostic:
675+
error: valid forms for the attribute are `#[doc(hidden|inline|...)]` and `#[doc = "string"]`
676+
--> $DIR/malformed-attrs.rs:77:1
677+
|
678+
LL | #[doc]
679+
| ^^^^^^
680+
|
681+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
682+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
683+
= note: `#[deny(ill_formed_attribute_input)]` on by default
684+
685+
Future breakage diagnostic:
686+
error: attribute must be of the form `#[link(name = "...", /*opt*/ kind = "dylib|static|...", /*opt*/ wasm_import_module = "...", /*opt*/ import_name_type = "decorated|noprefix|undecorated")]`
687+
--> $DIR/malformed-attrs.rs:84:1
688+
|
689+
LL | #[link]
690+
| ^^^^^^^
691+
|
692+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
693+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
694+
= note: `#[deny(ill_formed_attribute_input)]` on by default
695+
696+
Future breakage diagnostic:
697+
error: valid forms for the attribute are `#[inline(always|never)]` and `#[inline]`
698+
--> $DIR/malformed-attrs.rs:54:1
699+
|
700+
LL | #[inline = 5]
701+
| ^^^^^^^^^^^^^
702+
|
703+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
704+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
705+
= note: `#[deny(ill_formed_attribute_input)]` on by default
706+
707+
Future breakage diagnostic:
708+
error: valid forms for the attribute are `#[ignore = "reason"]` and `#[ignore]`
709+
--> $DIR/malformed-attrs.rs:95:1
710+
|
711+
LL | #[ignore()]
712+
| ^^^^^^^^^^^
713+
|
714+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
715+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
716+
= note: `#[deny(ill_formed_attribute_input)]` on by default
717+
718+
Future breakage diagnostic:
719+
error: valid forms for the attribute are `#[ignore = "reason"]` and `#[ignore]`
720+
--> $DIR/malformed-attrs.rs:224:1
721+
|
722+
LL | #[ignore = 1]
723+
| ^^^^^^^^^^^^^
724+
|
725+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
726+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
727+
= note: `#[deny(ill_formed_attribute_input)]` on by default
728+

tests/ui/feature-gates/issue-43106-gating-of-builtin-attrs-error.stderr

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,3 +318,14 @@ error: aborting due to 38 previous errors
318318

319319
Some errors have detailed explanations: E0517, E0518, E0658.
320320
For more information about an error, try `rustc --explain E0517`.
321+
Future incompatibility report: Future breakage diagnostic:
322+
error: valid forms for the attribute are `#[inline(always|never)]` and `#[inline]`
323+
--> $DIR/issue-43106-gating-of-builtin-attrs-error.rs:46:5
324+
|
325+
LL | #[inline = "2100"] fn f() { }
326+
| ^^^^^^^^^^^^^^^^^^
327+
|
328+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
329+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
330+
= note: `#[deny(ill_formed_attribute_input)]` on by default
331+

tests/ui/link-native-libs/link-attr-validation-early.stderr

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,25 @@ LL | #[link = "foo"]
1919

2020
error: aborting due to 2 previous errors
2121

22+
Future incompatibility report: Future breakage diagnostic:
23+
error: attribute must be of the form `#[link(name = "...", /*opt*/ kind = "dylib|static|...", /*opt*/ wasm_import_module = "...", /*opt*/ import_name_type = "decorated|noprefix|undecorated")]`
24+
--> $DIR/link-attr-validation-early.rs:2:1
25+
|
26+
LL | #[link]
27+
| ^^^^^^^
28+
|
29+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
30+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
31+
= note: `#[deny(ill_formed_attribute_input)]` on by default
32+
33+
Future breakage diagnostic:
34+
error: attribute must be of the form `#[link(name = "...", /*opt*/ kind = "dylib|static|...", /*opt*/ wasm_import_module = "...", /*opt*/ import_name_type = "decorated|noprefix|undecorated")]`
35+
--> $DIR/link-attr-validation-early.rs:4:1
36+
|
37+
LL | #[link = "foo"]
38+
| ^^^^^^^^^^^^^^^
39+
|
40+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
41+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
42+
= note: `#[deny(ill_formed_attribute_input)]` on by default
43+

tests/ui/macros/issue-111749.stderr

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,14 @@ LL | cbor_map! { #[test(test)] 4};
1616

1717
error: aborting due to 2 previous errors
1818

19+
Future incompatibility report: Future breakage diagnostic:
20+
error: attribute must be of the form `#[test]`
21+
--> $DIR/issue-111749.rs:8:17
22+
|
23+
LL | cbor_map! { #[test(test)] 4};
24+
| ^^^^^^^^^^^^^
25+
|
26+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
27+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
28+
= note: `#[deny(ill_formed_attribute_input)]` on by default
29+

tests/ui/malformed/malformed-regressions.stderr

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,58 @@ LL | #[inline = ""]
4646

4747
error: aborting due to 5 previous errors
4848

49+
Future incompatibility report: Future breakage diagnostic:
50+
error: valid forms for the attribute are `#[doc(hidden|inline|...)]` and `#[doc = "string"]`
51+
--> $DIR/malformed-regressions.rs:1:1
52+
|
53+
LL | #[doc]
54+
| ^^^^^^
55+
|
56+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
57+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
58+
= note: `#[deny(ill_formed_attribute_input)]` on by default
59+
60+
Future breakage diagnostic:
61+
error: attribute must be of the form `#[link(name = "...", /*opt*/ kind = "dylib|static|...", /*opt*/ wasm_import_module = "...", /*opt*/ import_name_type = "decorated|noprefix|undecorated")]`
62+
--> $DIR/malformed-regressions.rs:7:1
63+
|
64+
LL | #[link]
65+
| ^^^^^^^
66+
|
67+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
68+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
69+
= note: `#[deny(ill_formed_attribute_input)]` on by default
70+
71+
Future breakage diagnostic:
72+
error: attribute must be of the form `#[link(name = "...", /*opt*/ kind = "dylib|static|...", /*opt*/ wasm_import_module = "...", /*opt*/ import_name_type = "decorated|noprefix|undecorated")]`
73+
--> $DIR/malformed-regressions.rs:9:1
74+
|
75+
LL | #[link = ""]
76+
| ^^^^^^^^^^^^
77+
|
78+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
79+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
80+
= note: `#[deny(ill_formed_attribute_input)]` on by default
81+
82+
Future breakage diagnostic:
83+
error: valid forms for the attribute are `#[ignore = "reason"]` and `#[ignore]`
84+
--> $DIR/malformed-regressions.rs:3:1
85+
|
86+
LL | #[ignore()]
87+
| ^^^^^^^^^^^
88+
|
89+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
90+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
91+
= note: `#[deny(ill_formed_attribute_input)]` on by default
92+
93+
Future breakage diagnostic:
94+
error: valid forms for the attribute are `#[inline(always|never)]` and `#[inline]`
95+
--> $DIR/malformed-regressions.rs:5:1
96+
|
97+
LL | #[inline = ""]
98+
| ^^^^^^^^^^^^^^
99+
|
100+
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
101+
= note: for more information, see issue #57571 <https://github.com/rust-lang/rust/issues/57571>
102+
= note: `#[deny(ill_formed_attribute_input)]` on by default
103+

0 commit comments

Comments
 (0)