f9025512e7
cc #79813 This PR adds an allow-by-default future-compatibility lint `SEMICOLON_IN_EXPRESSIONS_FROM_MACROS`. It fires when a trailing semicolon in a macro body is ignored due to the macro being used in expression position: ```rust macro_rules! foo { () => { true; // WARN } } fn main() { let val = match true { true => false, _ => foo!() }; } ``` The lint takes its level from the macro call site, and can be allowed for a particular macro by adding `#[allow(semicolon_in_expressions_from_macros)]`. The lint is set to warn for all internal rustc crates (when being built by a stage1 compiler). After the next beta bump, we can enable the lint for the bootstrap compiler as well.
28 lines
893 B
TOML
28 lines
893 B
TOML
[package]
|
|
authors = ["The Rust Project Developers"]
|
|
name = "rustc_expand"
|
|
version = "0.0.0"
|
|
edition = "2018"
|
|
build = false
|
|
|
|
[lib]
|
|
doctest = false
|
|
|
|
[dependencies]
|
|
rustc_serialize = { path = "../rustc_serialize" }
|
|
tracing = "0.1"
|
|
rustc_span = { path = "../rustc_span" }
|
|
rustc_ast_pretty = { path = "../rustc_ast_pretty" }
|
|
rustc_ast_passes = { path = "../rustc_ast_passes" }
|
|
rustc_attr = { path = "../rustc_attr" }
|
|
rustc_data_structures = { path = "../rustc_data_structures" }
|
|
rustc_errors = { path = "../rustc_errors" }
|
|
rustc_feature = { path = "../rustc_feature" }
|
|
rustc_lint_defs = { path = "../rustc_lint_defs" }
|
|
rustc_macros = { path = "../rustc_macros" }
|
|
rustc_lexer = { path = "../rustc_lexer" }
|
|
rustc_parse = { path = "../rustc_parse" }
|
|
rustc_session = { path = "../rustc_session" }
|
|
smallvec = { version = "1.0", features = ["union", "may_dangle"] }
|
|
rustc_ast = { path = "../rustc_ast" }
|