Skip to content

Commit 0eed5ab

Browse files
committed
introduce fcw macro
1 parent d5525a7 commit 0eed5ab

File tree

12 files changed

+197
-158
lines changed

12 files changed

+197
-158
lines changed

compiler/rustc_lint/src/builtin.rs

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,9 @@ use rustc_middle::lint::LevelAndSource;
3535
use rustc_middle::ty::layout::LayoutOf;
3636
use rustc_middle::ty::print::with_no_trimmed_paths;
3737
use rustc_middle::ty::{self, AssocContainer, Ty, TyCtxt, TypeVisitableExt, Upcast, VariantDef};
38-
use rustc_session::lint::FutureIncompatibilityReason;
3938
// hardwired lints from rustc_lint_defs
4039
pub use rustc_session::lint::builtin::*;
40+
use rustc_session::lint::fcw;
4141
use rustc_session::{declare_lint, declare_lint_pass, impl_lint_pass};
4242
use rustc_span::edition::Edition;
4343
use rustc_span::source_map::Spanned;
@@ -777,8 +777,7 @@ declare_lint! {
777777
Warn,
778778
"detects anonymous parameters",
779779
@future_incompatible = FutureIncompatibleInfo {
780-
reason: FutureIncompatibilityReason::EditionError(Edition::Edition2018),
781-
reference: "issue #41686 <https://github.com/rust-lang/rust/issues/41686>",
780+
reason: fcw!(EditionError 2018 "trait-fn-parameters"),
782781
};
783782
}
784783

@@ -1664,8 +1663,7 @@ declare_lint! {
16641663
Warn,
16651664
"`...` range patterns are deprecated",
16661665
@future_incompatible = FutureIncompatibleInfo {
1667-
reason: FutureIncompatibilityReason::EditionError(Edition::Edition2021),
1668-
reference: "<https://doc.rust-lang.org/edition-guide/rust-2021/warnings-promoted-to-error.html>",
1666+
reason: fcw!(EditionError 2021 "warnings-promoted-to-error"),
16691667
};
16701668
}
16711669

@@ -1800,8 +1798,7 @@ declare_lint! {
18001798
Allow,
18011799
"detects edition keywords being used as an identifier",
18021800
@future_incompatible = FutureIncompatibleInfo {
1803-
reason: FutureIncompatibilityReason::EditionError(Edition::Edition2018),
1804-
reference: "issue #49716 <https://github.com/rust-lang/rust/issues/49716>",
1801+
reason: fcw!(EditionError 2018 "new-keywords"),
18051802
};
18061803
}
18071804

@@ -1845,8 +1842,7 @@ declare_lint! {
18451842
Allow,
18461843
"detects edition keywords being used as an identifier",
18471844
@future_incompatible = FutureIncompatibleInfo {
1848-
reason: FutureIncompatibilityReason::EditionError(Edition::Edition2024),
1849-
reference: "<https://doc.rust-lang.org/edition-guide/rust-2024/gen-keyword.html>",
1845+
reason: fcw!(EditionError 2024 "gen-keyword"),
18501846
};
18511847
}
18521848

compiler/rustc_lint/src/if_let_rescope.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,8 @@ use rustc_middle::ty::significant_drop_order::{
1111
extract_component_with_significant_dtor, ty_dtor_span,
1212
};
1313
use rustc_middle::ty::{self, Ty, TyCtxt};
14-
use rustc_session::lint::{FutureIncompatibilityReason, LintId};
14+
use rustc_session::lint::{LintId, fcw};
1515
use rustc_session::{declare_lint, impl_lint_pass};
16-
use rustc_span::edition::Edition;
1716
use rustc_span::{DUMMY_SP, Span};
1817
use smallvec::SmallVec;
1918

@@ -86,8 +85,7 @@ declare_lint! {
8685
"`if let` assigns a shorter lifetime to temporary values being pattern-matched against in Edition 2024 and \
8786
rewriting in `match` is an option to preserve the semantics up to Edition 2021",
8887
@future_incompatible = FutureIncompatibleInfo {
89-
reason: FutureIncompatibilityReason::EditionSemanticsChange(Edition::Edition2024),
90-
reference: "<https://doc.rust-lang.org/edition-guide/rust-2024/temporary-if-let-scope.html>",
88+
reason: fcw!(EditionSemanticsChange 2024 "temporary-if-let-scope"),
9189
};
9290
}
9391

compiler/rustc_lint/src/impl_trait_overcaptures.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@ use rustc_middle::ty::{
1919
self, Ty, TyCtxt, TypeSuperVisitable, TypeVisitable, TypeVisitableExt, TypeVisitor,
2020
};
2121
use rustc_middle::{bug, span_bug};
22-
use rustc_session::lint::FutureIncompatibilityReason;
22+
use rustc_session::lint::fcw;
2323
use rustc_session::{declare_lint, declare_lint_pass};
24-
use rustc_span::edition::Edition;
2524
use rustc_span::{Span, Symbol};
2625
use rustc_trait_selection::errors::{
2726
AddPreciseCapturingForOvercapture, impl_trait_overcapture_suggestion,
@@ -71,8 +70,7 @@ declare_lint! {
7170
Allow,
7271
"`impl Trait` will capture more lifetimes than possibly intended in edition 2024",
7372
@future_incompatible = FutureIncompatibleInfo {
74-
reason: FutureIncompatibilityReason::EditionSemanticsChange(Edition::Edition2024),
75-
reference: "<https://doc.rust-lang.org/edition-guide/rust-2024/rpit-lifetime-capture.html>",
73+
reason: fcw!(EditionSemanticsChange 2024 "rpit-lifetime-capture"),
7674
};
7775
}
7876

compiler/rustc_lint/src/macro_expr_fragment_specifier_2024_migration.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
33
use rustc_ast::token::{Token, TokenKind};
44
use rustc_ast::tokenstream::{TokenStream, TokenTree};
5-
use rustc_session::lint::FutureIncompatibilityReason;
5+
use rustc_session::lint::fcw;
66
use rustc_session::{declare_lint, declare_lint_pass};
77
use rustc_span::edition::Edition;
88
use rustc_span::sym;
@@ -72,8 +72,7 @@ declare_lint! {
7272
"The `expr` fragment specifier will accept more expressions in the 2024 edition. \
7373
To keep the existing behavior, use the `expr_2021` fragment specifier.",
7474
@future_incompatible = FutureIncompatibleInfo {
75-
reason: FutureIncompatibilityReason::EditionSemanticsChange(Edition::Edition2024),
76-
reference: "Migration Guide <https://doc.rust-lang.org/edition-guide/rust-2024/macro-fragment-specifiers.html>",
75+
reason: fcw!(EditionSemanticsChange 2024 "macro-fragment-specifiers"),
7776
};
7877
}
7978

compiler/rustc_lint/src/non_fmt_panic.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,8 @@ use rustc_hir::{self as hir, LangItem};
44
use rustc_infer::infer::TyCtxtInferExt;
55
use rustc_middle::{bug, ty};
66
use rustc_parse_format::{ParseMode, Parser, Piece};
7-
use rustc_session::lint::FutureIncompatibilityReason;
7+
use rustc_session::lint::fcw;
88
use rustc_session::{declare_lint, declare_lint_pass};
9-
use rustc_span::edition::Edition;
109
use rustc_span::{InnerSpan, Span, Symbol, hygiene, sym};
1110
use rustc_trait_selection::infer::InferCtxtExt;
1211

@@ -38,7 +37,7 @@ declare_lint! {
3837
Warn,
3938
"detect single-argument panic!() invocations in which the argument is not a format string",
4039
@future_incompatible = FutureIncompatibleInfo {
41-
reason: FutureIncompatibilityReason::EditionSemanticsChange(Edition::Edition2021),
40+
reason: fcw!(EditionSemanticsChange 2021 "panic-macro-consistency"),
4241
explain_reason: false,
4342
};
4443
report_in_external_macro

compiler/rustc_lint/src/shadowed_into_iter.rs

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
use rustc_hir::{self as hir, LangItem};
22
use rustc_middle::ty::{self, Ty};
3-
use rustc_session::lint::FutureIncompatibilityReason;
3+
use rustc_session::lint::fcw;
44
use rustc_session::{declare_lint, impl_lint_pass};
5-
use rustc_span::edition::Edition;
65

76
use crate::lints::{ShadowedIntoIterDiag, ShadowedIntoIterDiagSub};
87
use crate::{LateContext, LateLintPass, LintContext};
@@ -31,8 +30,7 @@ declare_lint! {
3130
Warn,
3231
"detects calling `into_iter` on arrays in Rust 2015 and 2018",
3332
@future_incompatible = FutureIncompatibleInfo {
34-
reason: FutureIncompatibilityReason::EditionSemanticsChange(Edition::Edition2021),
35-
reference: "<https://doc.rust-lang.org/edition-guide/rust-2021/IntoIterator-for-arrays.html>",
33+
reason: fcw!(EditionSemanticsChange 2021 "IntoIterator-for-arrays"),
3634
};
3735
}
3836

@@ -60,8 +58,7 @@ declare_lint! {
6058
Warn,
6159
"detects calling `into_iter` on boxed slices in Rust 2015, 2018, and 2021",
6260
@future_incompatible = FutureIncompatibleInfo {
63-
reason: FutureIncompatibilityReason::EditionSemanticsChange(Edition::Edition2024),
64-
reference: "<https://doc.rust-lang.org/edition-guide/rust-2024/intoiterator-box-slice.html>"
61+
reason: fcw!(EditionSemanticsChange 2024 "intoiterator-box-slice"),
6562
};
6663
}
6764

compiler/rustc_lint/src/static_mut_refs.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,8 @@
11
use rustc_hir as hir;
22
use rustc_hir::{Expr, Stmt};
33
use rustc_middle::ty::{Mutability, TyKind};
4-
use rustc_session::lint::FutureIncompatibilityReason;
4+
use rustc_session::lint::fcw;
55
use rustc_session::{declare_lint, declare_lint_pass};
6-
use rustc_span::edition::Edition;
76
use rustc_span::{BytePos, Span};
87

98
use crate::lints::{MutRefSugg, RefOfMutStatic};
@@ -53,8 +52,7 @@ declare_lint! {
5352
Warn,
5453
"creating a shared reference to mutable static",
5554
@future_incompatible = FutureIncompatibleInfo {
56-
reason: FutureIncompatibilityReason::EditionError(Edition::Edition2024),
57-
reference: "<https://doc.rust-lang.org/edition-guide/rust-2024/static-mut-references.html>",
55+
reason: fcw!(EditionError 2024 "static-mut-references"),
5856
explain_reason: false,
5957
};
6058
@edition Edition2024 => Deny;

0 commit comments

Comments
 (0)