-
Notifications
You must be signed in to change notification settings - Fork 12.7k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of #73178 - petrochenkov:explint, r=varkor
expand: More precise locations for expansion-time lints First commit: a macro expansion doesn't have a `NodeId` associated with it, but it has a parent `DefId` which we can use for linting. The observable effect is that lints associated with macro expansions can now be `allow`ed at finer-grained level than whole crate. Second commit: each macro definition has a `NodeId` which we can use for linting, unless that macro definition was decoded from other crate.
- Loading branch information
Showing
14 changed files
with
146 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
// ignore-test auxiliary file for expansion-time.rs | ||
|
||
1 | ||
2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
// check-pass | ||
|
||
#[warn(meta_variable_misuse)] | ||
macro_rules! foo { | ||
( $($i:ident)* ) => { $($i)+ }; //~ WARN meta-variable repeats with different Kleene operator | ||
} | ||
|
||
#[warn(missing_fragment_specifier)] | ||
macro_rules! m { ($i) => {} } //~ WARN missing fragment specifier | ||
//~| WARN this was previously accepted | ||
|
||
#[warn(soft_unstable)] | ||
mod benches { | ||
#[bench] //~ WARN use of unstable library feature 'test' | ||
//~| WARN this was previously accepted | ||
fn foo() {} | ||
} | ||
|
||
#[warn(incomplete_include)] | ||
fn main() { | ||
// WARN see in the stderr file, the warning points to the included file. | ||
include!("expansion-time-include.rs"); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
warning: meta-variable repeats with different Kleene operator | ||
--> $DIR/expansion-time.rs:5:29 | ||
| | ||
LL | ( $($i:ident)* ) => { $($i)+ }; | ||
| - ^^ - conflicting repetition | ||
| | | ||
| expected repetition | ||
| | ||
note: the lint level is defined here | ||
--> $DIR/expansion-time.rs:3:8 | ||
| | ||
LL | #[warn(meta_variable_misuse)] | ||
| ^^^^^^^^^^^^^^^^^^^^ | ||
|
||
warning: missing fragment specifier | ||
--> $DIR/expansion-time.rs:9:19 | ||
| | ||
LL | macro_rules! m { ($i) => {} } | ||
| ^^ | ||
| | ||
note: the lint level is defined here | ||
--> $DIR/expansion-time.rs:8:8 | ||
| | ||
LL | #[warn(missing_fragment_specifier)] | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ | ||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! | ||
= note: for more information, see issue #40107 <https://github.com/rust-lang/rust/issues/40107> | ||
|
||
warning: use of unstable library feature 'test': `bench` is a part of custom test frameworks which are unstable | ||
--> $DIR/expansion-time.rs:14:7 | ||
| | ||
LL | #[bench] | ||
| ^^^^^ | ||
| | ||
note: the lint level is defined here | ||
--> $DIR/expansion-time.rs:12:8 | ||
| | ||
LL | #[warn(soft_unstable)] | ||
| ^^^^^^^^^^^^^ | ||
= warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release! | ||
= note: for more information, see issue #64266 <https://github.com/rust-lang/rust/issues/64266> | ||
|
||
warning: include macro expected single expression in source | ||
--> $DIR/expansion-time-include.rs:4:1 | ||
| | ||
LL | 2 | ||
| ^ | ||
| | ||
note: the lint level is defined here | ||
--> $DIR/expansion-time.rs:19:8 | ||
| | ||
LL | #[warn(incomplete_include)] | ||
| ^^^^^^^^^^^^^^^^^^ | ||
|
||
warning: 4 warnings emitted | ||
|