rust/tests/ui/lint
bors 71704c4f84 Auto merge of #116623 - Nadrieril:validate-range-endpoints, r=oli-obk
Fix overflow checking in range patterns

When a range pattern contains an overflowing literal, if we're not careful we might not notice the overflow and use the wrapped value. This makes for confusing error messages because linting against overflowing literals is only done in a later pass. So when a range is invalid we check for overflows to provide a better error.

This check didn't use to handle negative types; this PR fixes that. First commit adds tests, second cleans up without changing behavior, third does the fix.

EDIT: while I was at it, I fixed a small annoyance about the span of the overflow lint on negated literals.

Fixes https://github.com/rust-lang/rust/issues/94239
2023-10-11 10:07:19 +00:00
..
auxiliary
dead-code
force-warn Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
internal
known-tool-in-submodule
large_assignments
let_underscore
must_not_suspend Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
redundant-semicolon
rfc-2383-lint-reason Rollup merge of #116428 - Alexendoo:note-duplicate-diagnostics, r=compiler-errors,estebank 2023-10-05 19:24:35 +02:00
rfc-2457-non-ascii-idents
semicolon-in-expressions-from-macros
unknown-lints
unsafe_code
unused
use-redundant
anonymous-reexport.rs
anonymous-reexport.stderr
bad-lint-cap2.rs
bad-lint-cap2.stderr
bad-lint-cap3.rs
bad-lint-cap3.stderr
bad-lint-cap.rs
bad-lint-cap.stderr
bare-trait-objects-path.rs
bare-trait-objects-path.stderr
clashing-extern-fn-recursion.rs
clashing-extern-fn-wasm.rs
clashing-extern-fn.rs
clashing-extern-fn.stderr
cli-lint-override.forbid_warn.stderr
cli-lint-override.force_warn_deny.stderr
cli-lint-override.rs
cli-lint-override.warn_deny.stderr
cli-unknown-force-warn.rs
cli-unknown-force-warn.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
command-line-lint-group-allow.rs
command-line-lint-group-deny.rs
command-line-lint-group-deny.stderr
command-line-lint-group-forbid.rs
command-line-lint-group-forbid.stderr
command-line-lint-group-warn.rs
command-line-lint-group-warn.stderr
command-line-register-lint-tool.rs
command-line-register-unknown-lint-tool.rs
command-line-register-unknown-lint-tool.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
crate_level_only_lint.rs
crate_level_only_lint.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
deny-overflowing-literals.rs
deny-overflowing-literals.stderr
dropping_copy_types.rs
dropping_copy_types.stderr
dropping_references.rs
dropping_references.stderr
empty-lint-attributes.rs
enable-unstable-lib-feature.rs
enable-unstable-lib-feature.stderr
expansion-time-include.rs
expansion-time.rs
expansion-time.stderr
expr_attr_paren_order.rs
expr_attr_paren_order.stderr
expr-field.rs
fn_must_use.rs
fn_must_use.stderr
for_loop_over_fallibles.rs
for_loop_over_fallibles.stderr
forbid-error-capped.rs
forbid-group-group-1.rs
forbid-group-group-1.stderr
forbid-group-group-2.rs
forbid-group-group-2.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
forbid-group-member.rs
forbid-group-member.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
forbid-member-group.rs
forbid-member-group.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
forgetting_copy_types.rs
forgetting_copy_types.stderr
forgetting_references.rs
forgetting_references.stderr
function-item-references.rs
function-item-references.stderr
future-incompat-test.rs
future-incompat-test.stderr
inclusive-range-pattern-syntax.fixed
inclusive-range-pattern-syntax.rs
inclusive-range-pattern-syntax.stderr
inert-attr-macro.rs
inert-attr-macro.stderr
inline-trait-and-foreign-items.rs
inline-trait-and-foreign-items.stderr
invalid_from_utf8.rs
invalid_from_utf8.stderr
invalid_value-polymorphic.rs
invalid_value.rs
invalid_value.stderr
invalid-nan-comparison-suggestion.fixed
invalid-nan-comparison-suggestion.rs
invalid-nan-comparison-suggestion.stderr
invalid-nan-comparison.rs
invalid-nan-comparison.stderr
issue-1866.rs
issue-1866.stderr
issue-14309.rs
issue-14309.stderr
issue-14837.rs
issue-17718-const-naming.rs
issue-17718-const-naming.stderr
issue-20343.rs
issue-30302.rs
issue-30302.stderr
issue-31924-non-snake-ffi.rs
issue-34798.rs
issue-35075.rs
issue-35075.stderr
issue-47775-nested-macro-unnecessary-parens-arg.rs
issue-49588-non-shorthand-field-patterns-in-pattern-macro.rs
issue-54099-camel-case-underscore-types.rs
issue-57410-1.rs
issue-57410.rs
issue-63364.rs
issue-63364.stderr
issue-66362-no-snake-case-warning-for-field-puns.rs
issue-66362-no-snake-case-warning-for-field-puns.stderr
issue-70819-dont-override-forbid-in-same-scope.rs
issue-70819-dont-override-forbid-in-same-scope.stderr
issue-79546-fuel-ice.rs
issue-79744.rs
issue-79744.stderr
issue-80988.rs
issue-80988.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
issue-81218.rs
issue-83477.rs
issue-83477.stderr
issue-86600-lint-twice.rs
issue-86600-lint-twice.stderr
issue-87274-paren-parent.rs
issue-87274-paren-parent.stderr
issue-89469.rs
issue-90614-accept-allow-text-direction-codepoint-in-comment-lint.rs
issue-97094.rs
issue-97094.stderr
issue-99387.rs
issue-99387.stderr
issue-101284.rs
issue-102705.rs
issue-103317.fixed
issue-103317.rs
issue-103317.stderr
issue-103435-extra-parentheses.fixed
issue-103435-extra-parentheses.rs
issue-103435-extra-parentheses.stderr
issue-104392.rs
issue-104392.stderr
issue-104897.rs
issue-104897.stderr
issue-106991.rs
issue-106991.stderr
issue-108155.rs
issue-109152.rs
issue-109152.stderr
issue-109529.fixed
issue-109529.rs
issue-109529.stderr
issue-110573.rs
issue-111359.rs
issue-111359.stderr
issue-112489.rs
lint_map_unit_fn.rs
lint_map_unit_fn.stderr
lint_pre_expansion_extern_module_aux.rs
lint-attr-everywhere-early.rs
lint-attr-everywhere-early.stderr
lint-attr-everywhere-late.rs
lint-attr-everywhere-late.stderr
lint-attr-non-item-node.rs
lint-attr-non-item-node.stderr
lint-cap-trait-bounds.rs
lint-cap.rs
lint-change-warnings.rs
lint-change-warnings.stderr
lint-const-item-mutation.rs
lint-const-item-mutation.stderr
lint-ctypes-66202.rs
lint-ctypes-73249-1.rs
lint-ctypes-73249-2.rs
lint-ctypes-73249-2.stderr
lint-ctypes-73249-3.rs
lint-ctypes-73249-3.stderr
lint-ctypes-73249-4.rs
lint-ctypes-73249-5.rs
lint-ctypes-73249-5.stderr
lint-ctypes-73249.rs
lint-ctypes-73251-1.rs
lint-ctypes-73251-1.stderr
lint-ctypes-73251-2.rs
lint-ctypes-73251-2.stderr
lint-ctypes-73251.rs
lint-ctypes-73747.rs
lint-ctypes-94223.rs
lint-ctypes-94223.stderr
lint-ctypes-113436-1.rs
lint-ctypes-113436-1.stderr
lint-ctypes-113436.rs
lint-ctypes-113900.rs
lint-ctypes-enum.rs
lint-ctypes-enum.stderr
lint-ctypes-fn.rs
lint-ctypes-fn.stderr
lint-ctypes-option-nonnull-unsized.rs
lint-ctypes-option-nonnull-unsized.stderr
lint-ctypes.rs
lint-ctypes.stderr
lint-deref-nullptr.rs
lint-deref-nullptr.stderr
lint-directives-on-use-items-issue-10534.rs
lint-directives-on-use-items-issue-10534.stderr
lint-enum-intrinsics-non-enums.rs
lint-enum-intrinsics-non-enums.stderr
lint-exceeding-bitshifts.noopt.stderr
lint-exceeding-bitshifts.opt_with_overflow_checks.stderr
lint-exceeding-bitshifts.opt.stderr
lint-exceeding-bitshifts.rs
lint-expr-stmt-attrs-for-early-lints.rs
lint-ffi-safety-all-phantom.rs
lint-forbid-attr.rs
lint-forbid-attr.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
lint-forbid-cmdline.rs
lint-forbid-cmdline.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
lint-forbid-internal-unsafe.rs
lint-forbid-internal-unsafe.stderr
lint-group-nonstandard-style.rs
lint-group-nonstandard-style.stderr
lint-impl-fn.rs
lint-impl-fn.stderr
lint-incoherent-auto-trait-objects.rs
lint-incoherent-auto-trait-objects.stderr
lint-invalid-atomic-ordering-bool.rs
lint-invalid-atomic-ordering-bool.stderr
lint-invalid-atomic-ordering-exchange-weak.rs
lint-invalid-atomic-ordering-exchange-weak.stderr
lint-invalid-atomic-ordering-exchange.rs
lint-invalid-atomic-ordering-exchange.stderr
lint-invalid-atomic-ordering-false-positive.rs
lint-invalid-atomic-ordering-fence.rs
lint-invalid-atomic-ordering-fence.stderr
lint-invalid-atomic-ordering-fetch-update.rs
lint-invalid-atomic-ordering-fetch-update.stderr
lint-invalid-atomic-ordering-int.rs
lint-invalid-atomic-ordering-int.stderr
lint-invalid-atomic-ordering-ptr.rs
lint-invalid-atomic-ordering-ptr.stderr
lint-invalid-atomic-ordering-uint.rs
lint-invalid-atomic-ordering-uint.stderr
lint-level-macro-def-mod.rs
lint-level-macro-def.rs
lint-lowercase-static-const-pattern-rename.rs
lint-lowercase-static-const-pattern.rs
lint-lowercase-static-const-pattern.stderr
lint-malformed.rs
lint-malformed.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
lint-match-arms-2.rs
lint-match-arms-2.stderr
lint-match-arms.rs
lint-match-arms.stderr
lint-misplaced-attr.rs
lint-misplaced-attr.stderr
lint-missing-copy-implementations-allow.rs
lint-missing-copy-implementations.rs
lint-missing-copy-implementations.stderr
lint-missing-doc.rs
lint-missing-doc.stderr
lint-non-camel-case-types.rs
lint-non-camel-case-types.stderr
lint-non-camel-case-variant.rs
lint-non-camel-case-with-trailing-underscores.rs
lint-non-snake-case-crate-2.rs
lint-non-snake-case-crate-2.stderr
lint-non-snake-case-crate.rs
lint-non-snake-case-crate.stderr
lint-non-snake-case-functions.rs
lint-non-snake-case-functions.stderr
lint-non-snake-case-identifiers-suggestion-reserved.rs
lint-non-snake-case-identifiers-suggestion-reserved.stderr
lint-non-snake-case-lifetimes.rs
lint-non-snake-case-lifetimes.stderr
lint-non-snake-case-modules.rs
lint-non-snake-case-modules.stderr
lint-non-snake-case-no-lowercase-equivalent.rs
lint-non-uppercase-associated-const.rs
lint-non-uppercase-associated-const.stderr
lint-non-uppercase-statics.rs
lint-non-uppercase-statics.stderr
lint-non-uppercase-trait-assoc-const.rs
lint-non-uppercase-trait-assoc-const.stderr
lint-nonstandard-style-unicode-1.rs
lint-nonstandard-style-unicode-1.stderr
lint-nonstandard-style-unicode-2.rs
lint-nonstandard-style-unicode-2.stderr
lint-nonstandard-style-unicode-3.rs
lint-nonstandard-style-unicode-3.stderr
lint-output-format-2.rs
lint-output-format-2.stderr
lint-output-format.rs
lint-output-format.stderr
lint-owned-heap-memory.rs
lint-owned-heap-memory.stderr
lint-pre-expansion-extern-module.rs
lint-pre-expansion-extern-module.stderr
lint-pub-unreachable-for-nested-glob.rs
lint-qualification.fixed
lint-qualification.rs
lint-qualification.stderr
lint-range-endpoint-overflow.rs
lint-range-endpoint-overflow.stderr
lint-removed-allow.rs
lint-removed-allow.stderr
lint-removed-cmdline-deny.rs
lint-removed-cmdline-deny.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
lint-removed-cmdline.rs
lint-removed-cmdline.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
lint-removed.rs
lint-removed.stderr
lint-renamed-allow.rs
lint-renamed-allow.stderr
lint-renamed-cmdline-deny.rs
lint-renamed-cmdline-deny.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
lint-renamed-cmdline.rs
lint-renamed-cmdline.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
lint-renamed.rs
lint-renamed.stderr
lint-shorthand-field.fixed
lint-shorthand-field.rs
lint-shorthand-field.stderr
lint-stability2.rs
lint-stability2.stderr
lint-stability3.rs
lint-stability3.stderr
lint-stability-2.rs
lint-stability-2.stderr
lint-stability-deprecated.rs
lint-stability-deprecated.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
lint-stability-fields-deprecated.rs
lint-stability-fields-deprecated.stderr
lint-stability-fields.rs
lint-stability-fields.stderr
lint-stability.rs
lint-stability.stderr
lint-strict-provenance-fuzzy-casts.rs
lint-strict-provenance-fuzzy-casts.stderr
lint-strict-provenance-lossy-casts.rs
lint-strict-provenance-lossy-casts.stderr
lint-struct-necessary.rs
lint-struct-necessary.stderr
lint-temporary-cstring-as-param.rs
lint-temporary-cstring-as-param.stderr
lint-temporary-cstring-as-ptr.rs
lint-temporary-cstring-as-ptr.stderr
lint-type-limits2.rs
lint-type-limits2.stderr
lint-type-limits3.rs
lint-type-limits3.stderr
lint-type-limits.rs
lint-type-limits.stderr
lint-type-overflow2.rs
lint-type-overflow2.stderr
lint-type-overflow.rs
lint-type-overflow.stderr Fix span of overflow lint for negated literals 2023-10-11 04:55:55 +02:00
lint-unconditional-drop-recursion.rs
lint-unconditional-drop-recursion.stderr
lint-unconditional-recursion.rs
lint-unconditional-recursion.stderr
lint-unexported-no-mangle.rs
lint-unexported-no-mangle.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
lint-unknown-feature-default.rs
lint-unknown-feature.rs
lint-unknown-lint-cmdline-allow.rs
lint-unknown-lint-cmdline-deny.rs
lint-unknown-lint-cmdline-deny.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
lint-unknown-lint-cmdline.rs
lint-unknown-lint-cmdline.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
lint-unknown-lint.rs
lint-unknown-lint.stderr
lint-unnecessary-import-braces.rs
lint-unnecessary-import-braces.stderr
lint-unnecessary-parens.fixed
lint-unnecessary-parens.rs
lint-unnecessary-parens.stderr
lint-unsafe-code.rs
lint-unsafe-code.stderr
lint-uppercase-variables.rs
lint-uppercase-variables.stderr
lints-in-foreign-macros.rs
lints-in-foreign-macros.stderr
missing-copy-implementations-negative-copy.rs
missing-doc-private-macro.rs
missing-doc-private-macro.stderr
no-coverage.rs
no-coverage.stderr
noop-method-call.fixed Fix noop_method_call detection for new diagnostic items 2023-09-28 08:22:59 -04:00
noop-method-call.rs Fix noop_method_call detection for new diagnostic items 2023-09-28 08:22:59 -04:00
noop-method-call.stderr Fix noop_method_call detection for new diagnostic items 2023-09-28 08:22:59 -04:00
not_found.rs
not_found.stderr
opaque-ty-ffi-normalization-cycle.rs
opaque-ty-ffi-normalization-cycle.stderr
opaque-ty-ffi-unsafe.rs
opaque-ty-ffi-unsafe.stderr
outer-forbid.rs
outer-forbid.stderr
ptr_null_checks.rs
ptr_null_checks.stderr
reasons-erroneous.rs Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
reasons-erroneous.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
reasons-forbidden.rs
reasons-forbidden.stderr
reasons.rs
reasons.stderr
recommend-literal.rs
recommend-literal.stderr
reference_casting.rs Clarify invalid_reference_casting lint around interior mutable types 2023-10-04 22:06:16 +02:00
reference_casting.stderr Clarify invalid_reference_casting lint around interior mutable types 2023-10-04 22:06:16 +02:00
register-tool-lint.rs
register-tool-lint.stderr Add a note to duplicate diagnostics 2023-10-05 01:04:41 +00:00
renamed-lints-still-apply.rs
renamed-lints-still-apply.stderr
rustdoc-group.rs
rustdoc-group.stderr
rustdoc-renamed.rs
rustdoc-renamed.stderr
special-upper-lower-cases.rs
special-upper-lower-cases.stderr
suggestions.fixed
suggestions.rs
suggestions.stderr
suspicious-double-ref-op.rs
suspicious-double-ref-op.stderr
test-allow-dead-extern-static-no-warning.rs
test-inner-fn.rs
test-inner-fn.stderr
trivial_casts.rs
trivial_casts.stderr
trivial-cast-ice.rs
trivial-casts-featuring-type-ascription.rs
trivial-casts-featuring-type-ascription.stderr
trivial-casts.rs
trivial-casts.stderr
type-overflow.rs
type-overflow.stderr
unaligned_references_external_macro.rs
unaligned_references_external_macro.stderr
unaligned_references.rs
unaligned_references.stderr
unconditional_panic_98444.rs
unconditional_panic_98444.stderr
undropped_manually_drops.rs
undropped_manually_drops.stderr
unnecessary-extern-crate.rs
unnecessary-extern-crate.stderr
unreachable_pub.rs
unreachable_pub.stderr
unreachable-async-fn.rs
unused_braces_borrow.fixed
unused_braces_borrow.rs
unused_braces_borrow.stderr
unused_braces_macro.rs
unused_braces.fixed
unused_braces.rs
unused_braces.stderr
unused_import_warning_issue_45268.rs
unused_import_warning_issue_45268.stderr
unused_labels.rs
unused_labels.stderr
unused_parens_json_suggestion.fixed
unused_parens_json_suggestion.rs
unused_parens_json_suggestion.stderr
unused_parens_multibyte_recovery.rs
unused_parens_multibyte_recovery.stderr
unused_parens_remove_json_suggestion.fixed
unused_parens_remove_json_suggestion.rs
unused_parens_remove_json_suggestion.stderr
unused_variables-issue-82488.fixed
unused_variables-issue-82488.rs
unused_variables-issue-82488.stderr
unused-borrows.rs
unused-borrows.stderr
unused-braces-while-let-with-mutable-value.rs
unused-qualification-in-derive-expansion.rs
use_suggestion_json.rs
use_suggestion_json.stderr
warn-ctypes-inhibit.rs
warn-path-statement.rs
warn-path-statement.stderr
warn-unused-inline-on-fn-prototypes.rs
warn-unused-inline-on-fn-prototypes.stderr