summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--compiler/rustc_lint_defs/src/builtin.rs181
-rw-r--r--tests/ui/attributes/invalid_macro_export_argument.deny.stderr20
-rw-r--r--tests/ui/attributes/invalid_macro_export_argument.rs13
-rw-r--r--tests/ui/attributes/invalid_macro_export_argument.stderr16
4 files changed, 123 insertions, 107 deletions
diff --git a/compiler/rustc_lint_defs/src/builtin.rs b/compiler/rustc_lint_defs/src/builtin.rs
index b223b8c137a..a3d7bd3ef59 100644
--- a/compiler/rustc_lint_defs/src/builtin.rs
+++ b/compiler/rustc_lint_defs/src/builtin.rs
@@ -3273,110 +3273,115 @@ declare_lint_pass! {
/// Does nothing as a lint pass, but registers some `Lint`s
/// that are used by other parts of the compiler.
HardwiredLints => [
- FORBIDDEN_LINT_GROUPS,
- ILLEGAL_FLOATING_POINT_LITERAL_PATTERN,
+ // tidy-alphabetical-start
+ ABSOLUTE_PATHS_NOT_STARTING_WITH_CRATE,
+ AMBIGUOUS_ASSOCIATED_ITEMS,
+ AMBIGUOUS_GLOB_REEXPORTS,
ARITHMETIC_OVERFLOW,
- UNCONDITIONAL_PANIC,
- UNUSED_IMPORTS,
- UNUSED_EXTERN_CRATES,
- UNUSED_CRATE_DEPENDENCIES,
- UNUSED_QUALIFICATIONS,
- UNKNOWN_LINTS,
- UNFULFILLED_LINT_EXPECTATIONS,
- UNUSED_VARIABLES,
- UNUSED_ASSIGNMENTS,
- DEAD_CODE,
- UNREACHABLE_CODE,
- UNREACHABLE_PATTERNS,
- OVERLAPPING_RANGE_ENDPOINTS,
+ ASM_SUB_REGISTER,
+ BAD_ASM_STYLE,
+ BARE_TRAIT_OBJECTS,
BINDINGS_WITH_VARIANT_NAME,
- UNUSED_MACROS,
- UNUSED_MACRO_RULES,
- WARNINGS,
- UNUSED_FEATURES,
- STABLE_FEATURES,
- UNKNOWN_CRATE_TYPES,
- TRIVIAL_CASTS,
- TRIVIAL_NUMERIC_CASTS,
- PRIVATE_IN_PUBLIC,
- EXPORTED_PRIVATE_DEPENDENCIES,
- PUB_USE_OF_PRIVATE_EXTERN_CRATE,
- INVALID_TYPE_PARAM_DEFAULT,
- RENAMED_AND_REMOVED_LINTS,
- CONST_ITEM_MUTATION,
- PATTERNS_IN_FNS_WITHOUT_BODY,
- MISSING_FRAGMENT_SPECIFIER,
- LATE_BOUND_LIFETIME_ARGUMENTS,
- ORDER_DEPENDENT_TRAIT_OBJECTS,
+ BREAK_WITH_LABEL_AND_LOOP,
+ BYTE_SLICE_IN_PACKED_STRUCT_WITH_DERIVE,
+ CENUM_IMPL_DROP_CAST,
COHERENCE_LEAK_CHECK,
+ CONFLICTING_REPR_HINTS,
+ CONST_EVALUATABLE_UNCHECKED,
+ CONST_ITEM_MUTATION,
+ DEAD_CODE,
DEPRECATED,
- UNUSED_UNSAFE,
- UNUSED_MUT,
- UNCONDITIONAL_RECURSION,
- SINGLE_USE_LIFETIMES,
- UNUSED_LIFETIMES,
- UNUSED_LABELS,
- TYVAR_BEHIND_RAW_POINTER,
+ DEPRECATED_CFG_ATTR_CRATE_TYPE_NAME,
+ DEPRECATED_IN_FUTURE,
+ DEPRECATED_WHERE_CLAUSE_LOCATION,
+ DUPLICATE_MACRO_ATTRIBUTES,
ELIDED_LIFETIMES_IN_PATHS,
- BARE_TRAIT_OBJECTS,
- ABSOLUTE_PATHS_NOT_STARTING_WITH_CRATE,
- UNSTABLE_NAME_COLLISIONS,
- IRREFUTABLE_LET_PATTERNS,
- WHERE_CLAUSES_OBJECT_SAFETY,
- PROC_MACRO_DERIVE_RESOLUTION_FALLBACK,
- MACRO_USE_EXTERN_CRATE,
- MACRO_EXPANDED_MACRO_EXPORTS_ACCESSED_BY_ABSOLUTE_PATHS,
+ EXPORTED_PRIVATE_DEPENDENCIES,
+ FFI_UNWIND_CALLS,
+ FORBIDDEN_LINT_GROUPS,
+ FUNCTION_ITEM_REFERENCES,
+ FUZZY_PROVENANCE_CASTS,
ILL_FORMED_ATTRIBUTE_INPUT,
- CONFLICTING_REPR_HINTS,
- META_VARIABLE_MISUSE,
- DEPRECATED_IN_FUTURE,
- AMBIGUOUS_ASSOCIATED_ITEMS,
- INDIRECT_STRUCTURAL_MATCH,
- POINTER_STRUCTURAL_MATCH,
- NONTRIVIAL_STRUCTURAL_MATCH,
- SOFT_UNSTABLE,
- UNSTABLE_SYNTAX_PRE_EXPANSION,
- INLINE_NO_SANITIZE,
- BAD_ASM_STYLE,
- ASM_SUB_REGISTER,
- UNSAFE_OP_IN_UNSAFE_FN,
+ ILLEGAL_FLOATING_POINT_LITERAL_PATTERN,
+ IMPLIED_BOUNDS_ENTAILMENT,
INCOMPLETE_INCLUDE,
- CENUM_IMPL_DROP_CAST,
- FUZZY_PROVENANCE_CASTS,
- LOSSY_PROVENANCE_CASTS,
- CONST_EVALUATABLE_UNCHECKED,
+ INDIRECT_STRUCTURAL_MATCH,
INEFFECTIVE_UNSTABLE_TRAIT_IMPL,
- MUST_NOT_SUSPEND,
- UNINHABITED_STATIC,
- FUNCTION_ITEM_REFERENCES,
- USELESS_DEPRECATED,
- MISSING_ABI,
+ INLINE_NO_SANITIZE,
+ INVALID_ALIGNMENT,
INVALID_DOC_ATTRIBUTES,
- SEMICOLON_IN_EXPRESSIONS_FROM_MACROS,
- RUST_2021_INCOMPATIBLE_CLOSURE_CAPTURES,
+ INVALID_MACRO_EXPORT_ARGUMENTS,
+ INVALID_TYPE_PARAM_DEFAULT,
+ IRREFUTABLE_LET_PATTERNS,
+ LARGE_ASSIGNMENTS,
+ LATE_BOUND_LIFETIME_ARGUMENTS,
LEGACY_DERIVE_HELPERS,
+ LOSSY_PROVENANCE_CASTS,
+ MACRO_EXPANDED_MACRO_EXPORTS_ACCESSED_BY_ABSOLUTE_PATHS,
+ MACRO_USE_EXTERN_CRATE,
+ META_VARIABLE_MISUSE,
+ MISSING_ABI,
+ MISSING_FRAGMENT_SPECIFIER,
+ MUST_NOT_SUSPEND,
+ NAMED_ARGUMENTS_USED_POSITIONALLY,
+ NON_EXHAUSTIVE_OMITTED_PATTERNS,
+ NONTRIVIAL_STRUCTURAL_MATCH,
+ ORDER_DEPENDENT_TRAIT_OBJECTS,
+ OVERLAPPING_RANGE_ENDPOINTS,
+ PATTERNS_IN_FNS_WITHOUT_BODY,
+ POINTER_STRUCTURAL_MATCH,
+ PRIVATE_IN_PUBLIC,
PROC_MACRO_BACK_COMPAT,
+ PROC_MACRO_DERIVE_RESOLUTION_FALLBACK,
+ PUB_USE_OF_PRIVATE_EXTERN_CRATE,
+ RENAMED_AND_REMOVED_LINTS,
+ REPR_TRANSPARENT_EXTERNAL_PRIVATE_FIELDS,
+ RUST_2021_INCOMPATIBLE_CLOSURE_CAPTURES,
RUST_2021_INCOMPATIBLE_OR_PATTERNS,
- LARGE_ASSIGNMENTS,
- RUST_2021_PRELUDE_COLLISIONS,
RUST_2021_PREFIXES_INCOMPATIBLE_SYNTAX,
+ RUST_2021_PRELUDE_COLLISIONS,
+ SEMICOLON_IN_EXPRESSIONS_FROM_MACROS,
+ SINGLE_USE_LIFETIMES,
+ SOFT_UNSTABLE,
+ STABLE_FEATURES,
+ SUSPICIOUS_AUTO_TRAIT_IMPLS,
+ TEST_UNSTABLE_LINT,
+ TEXT_DIRECTION_CODEPOINT_IN_COMMENT,
+ TRIVIAL_CASTS,
+ TRIVIAL_NUMERIC_CASTS,
+ TYVAR_BEHIND_RAW_POINTER,
+ UNCONDITIONAL_PANIC,
+ UNCONDITIONAL_RECURSION,
+ UNDEFINED_NAKED_FUNCTION_ABI,
+ UNFULFILLED_LINT_EXPECTATIONS,
+ UNINHABITED_STATIC,
+ UNKNOWN_CRATE_TYPES,
+ UNKNOWN_LINTS,
+ UNREACHABLE_CODE,
+ UNREACHABLE_PATTERNS,
+ UNSAFE_OP_IN_UNSAFE_FN,
+ UNSTABLE_NAME_COLLISIONS,
+ UNSTABLE_SYNTAX_PRE_EXPANSION,
UNSUPPORTED_CALLING_CONVENTIONS,
- BREAK_WITH_LABEL_AND_LOOP,
+ UNUSED_ASSIGNMENTS,
UNUSED_ATTRIBUTES,
+ UNUSED_CRATE_DEPENDENCIES,
+ UNUSED_EXTERN_CRATES,
+ UNUSED_FEATURES,
+ UNUSED_IMPORTS,
+ UNUSED_LABELS,
+ UNUSED_LIFETIMES,
+ UNUSED_MACRO_RULES,
+ UNUSED_MACROS,
+ UNUSED_MUT,
+ UNUSED_QUALIFICATIONS,
UNUSED_TUPLE_STRUCT_FIELDS,
- NON_EXHAUSTIVE_OMITTED_PATTERNS,
- TEXT_DIRECTION_CODEPOINT_IN_COMMENT,
- DEPRECATED_CFG_ATTR_CRATE_TYPE_NAME,
- DUPLICATE_MACRO_ATTRIBUTES,
- SUSPICIOUS_AUTO_TRAIT_IMPLS,
- DEPRECATED_WHERE_CLAUSE_LOCATION,
- TEST_UNSTABLE_LINT,
- FFI_UNWIND_CALLS,
- REPR_TRANSPARENT_EXTERNAL_PRIVATE_FIELDS,
- NAMED_ARGUMENTS_USED_POSITIONALLY,
- IMPLIED_BOUNDS_ENTAILMENT,
- BYTE_SLICE_IN_PACKED_STRUCT_WITH_DERIVE,
- AMBIGUOUS_GLOB_REEXPORTS,
+ UNUSED_UNSAFE,
+ UNUSED_VARIABLES,
+ USELESS_DEPRECATED,
+ WARNINGS,
+ WHERE_CLAUSES_OBJECT_SAFETY,
+ // tidy-alphabetical-end
]
}
diff --git a/tests/ui/attributes/invalid_macro_export_argument.deny.stderr b/tests/ui/attributes/invalid_macro_export_argument.deny.stderr
new file mode 100644
index 00000000000..644acc27b58
--- /dev/null
+++ b/tests/ui/attributes/invalid_macro_export_argument.deny.stderr
@@ -0,0 +1,20 @@
+error: `#[macro_export]` can only take 1 or 0 arguments
+ --> $DIR/invalid_macro_export_argument.rs:7:1
+ |
+LL | #[macro_export(hello, world)]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+note: the lint level is defined here
+ --> $DIR/invalid_macro_export_argument.rs:4:24
+ |
+LL | #![cfg_attr(deny, deny(invalid_macro_export_arguments))]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: `not_local_inner_macros` isn't a valid `#[macro_export]` argument
+ --> $DIR/invalid_macro_export_argument.rs:13:16
+ |
+LL | #[macro_export(not_local_inner_macros)]
+ | ^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
diff --git a/tests/ui/attributes/invalid_macro_export_argument.rs b/tests/ui/attributes/invalid_macro_export_argument.rs
index 85d009f11a6..a0ed5fd1c8f 100644
--- a/tests/ui/attributes/invalid_macro_export_argument.rs
+++ b/tests/ui/attributes/invalid_macro_export_argument.rs
@@ -1,10 +1,17 @@
-// check-pass
-#[macro_export(hello, world)] //~ WARN `#[macro_export]` can only take 1 or 0 arguments
+// revisions: deny allow
+//[allow] check-pass
+
+#![cfg_attr(deny, deny(invalid_macro_export_arguments))]
+#![cfg_attr(allow, allow(invalid_macro_export_arguments))]
+
+#[macro_export(hello, world)]
+//[deny]~^ ERROR `#[macro_export]` can only take 1 or 0 arguments
macro_rules! a {
() => ()
}
-#[macro_export(not_local_inner_macros)] //~ WARN `not_local_inner_macros` isn't a valid `#[macro_export]` argument
+#[macro_export(not_local_inner_macros)]
+//[deny]~^ ERROR `not_local_inner_macros` isn't a valid `#[macro_export]` argument
macro_rules! b {
() => ()
}
diff --git a/tests/ui/attributes/invalid_macro_export_argument.stderr b/tests/ui/attributes/invalid_macro_export_argument.stderr
deleted file mode 100644
index a4e17642c2a..00000000000
--- a/tests/ui/attributes/invalid_macro_export_argument.stderr
+++ /dev/null
@@ -1,16 +0,0 @@
-warning: `#[macro_export]` can only take 1 or 0 arguments
- --> $DIR/invalid_macro_export_argument.rs:2:1
- |
-LL | #[macro_export(hello, world)]
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- |
- = note: `#[warn(invalid_macro_export_arguments)]` on by default
-
-warning: `not_local_inner_macros` isn't a valid `#[macro_export]` argument
- --> $DIR/invalid_macro_export_argument.rs:7:16
- |
-LL | #[macro_export(not_local_inner_macros)]
- | ^^^^^^^^^^^^^^^^^^^^^^
-
-warning: 2 warnings emitted
-