rust/tests/ui/macros
bors 4e97337005 Auto merge of #142030 - oli-obk:wfck-less-hir, r=compiler-errors
Start moving wf checking away from HIR

I'm trying to only access the HIR in the error path. My hope is that once we move significant portions of wfcheck off HIR that incremental will be able to cache wfcheck queries significantly better.

I think I am reaching a blocker because we normally need to provide good spans to `ObligationCause`, so that the trait solver can report good errors. In some cases I have been able to use bad spans and improve them depending on the `ObligationCauseCode` (by loading HIR in the case where we actually want to error). To scale that further we'll likely need to remove spans from the `ObligationCause` entirely (leaving it to some variants of `ObligationCauseCode` to have a span when they can't recompute the information later). Unsure this is the right approach, but we've already been using it. I will create an MCP about it, but that should not affect this PR, which is fairly limited in where it does those kind of tricks.

Especially b862d8828e is interesting here, because I think it improves spans in all cases
2025-07-01 14:59:58 +00:00
..
auxiliary
issue-69838-dir
macro-expanded-include
macro-metavar-expr-concat Rollup merge of #143245 - tgross35:metavariable-expr-organization, r=petrochenkov 2025-07-01 04:25:36 +02:00
metavar-expressions mbe: Extend metavariable expression tests 2025-06-30 19:02:36 +00:00
rfc-2011-nicer-assert-messages
syntax-extension-source-utils-files
ambiguity-legacy-vs-modern.rs
ambiguity-legacy-vs-modern.stderr
assert-as-macro.rs
assert-eq-macro-msg.rs
assert-eq-macro-panic.rs
assert-eq-macro-success.rs
assert-eq-macro-unsized.rs
assert-format-lazy.rs
assert-long-condition.rs
assert-long-condition.run.stderr
assert-macro-explicit.rs
assert-macro-fmt.rs
assert-macro-owned.rs
assert-macro-static.rs
assert-matches-macro-msg.rs
assert-ne-macro-msg.rs
assert-ne-macro-panic.rs
assert-ne-macro-success.rs
assert-ne-macro-unsized.rs
assert-trailing-junk.rs
assert-trailing-junk.with-generic-asset.stderr
assert-trailing-junk.without-generic-asset.stderr
assert.rs
assert.with-generic-asset.stderr
assert.without-generic-asset.stderr
attr-empty-expr.rs
attr-empty-expr.stderr
attr-from-macro.rs
bad-concat.rs
bad-concat.stderr
bad_hello.rs
bad_hello.stderr
bang-after-name.fixed
bang-after-name.rs
bang-after-name.stderr
best-failure.rs
best-failure.stderr
block-to-expr-metavar.rs
borrowck-error-in-macro.rs
borrowck-error-in-macro.stderr
break-last-token-twice.rs
builtin-env-issue-114010.rs
builtin-env-issue-114010.stderr
builtin-prelude-no-accidents.rs
builtin-prelude-no-accidents.stderr
builtin-std-paths-fail.rs
builtin-std-paths-fail.stderr
builtin-std-paths.rs
cfg.rs
cfg.stderr
colorful-write-macros.rs
compile_error_macro.rs
compile_error_macro.stderr
concat-bytes-error.rs
concat-bytes-error.stderr
concat-bytes.rs
concat-rpass.rs
concat.rs
concat.stderr
conditional-debug-macro-on.rs
const-expr-invocations-issue-40136.rs
cross-crate-pat-span.rs
defined-later-issue-121061-2.rs
defined-later-issue-121061-2.stderr
defined-later-issue-121061.rs
defined-later-issue-121061.stderr
derive-in-eager-expansion-hang.rs
derive-in-eager-expansion-hang.stderr
die-macro-2.rs
die-macro-expr.rs
die-macro-pure.rs
die-macro.rs
doc-comment.rs
dollar-crate-nested-encoding.rs
edition-macro-pats.rs
empty-trailing-stmt.rs
empty-trailing-stmt.stderr
expand-full-asm.rs
expand-full-in-format-str.rs
expand-full-no-resolution.rs
expand-full-no-resolution.stderr
expr_2021.rs
expr_2021_cargo_fix_edition.fixed
expr_2021_cargo_fix_edition.rs
expr_2021_cargo_fix_edition.stderr
expr_2021_implicit_in_2024.rs
expr_2021_inline_const.edi2021.stderr
expr_2021_inline_const.edi2024.stderr
expr_2021_inline_const.rs
expr_2024_underscore_expr.edi2021.stderr
expr_2024_underscore_expr.edi2024.stderr
expr_2024_underscore_expr.rs
failed-to-reparse-issue-137874.rs
failed-to-reparse-issue-137874.stderr
failed-to-reparse-issue-139445.rs
failed-to-reparse-issue-139445.stderr
format-args-temporaries-async.rs
format-args-temporaries-in-write.rs
format-args-temporaries-in-write.stderr
format-args-temporaries.rs
format-empty-block-unit-tuple-suggestion-130170.fixed
format-empty-block-unit-tuple-suggestion-130170.rs
format-empty-block-unit-tuple-suggestion-130170.stderr
format-foreign.rs
format-foreign.stderr
format-parse-errors.rs
format-parse-errors.stderr
format-unused-lables.rs
format-unused-lables.stderr
genercs-in-path-with-prettry-hir.rs
genercs-in-path-with-prettry-hir.stderr
genercs-in-path-with-prettry-hir.stdout
global-asm.rs
global-asm.stderr
html-literals.rs
ice-in-tokenstream-for-contracts-issue-140683.rs
ice-in-tokenstream-for-contracts-issue-140683.stderr
include-single-expr-helper-1.rs
include-single-expr-helper.rs
include-single-expr.rs
include-single-expr.stderr
invalid-fragment-specifier.rs
invalid-fragment-specifier.stderr
issue-2804-2.rs
issue-2804.rs
issue-5060.rs
issue-6596-1.rs
issue-6596-1.stderr
issue-6596-2.rs
issue-6596-2.stderr
issue-8709.rs
issue-8851.rs
issue-10536.rs
issue-10536.stderr
issue-11692-1.rs
issue-11692-1.stderr
issue-11692-2.rs
issue-11692-2.stderr
issue-16098.rs
issue-16098.stderr
issue-19163.rs
issue-19163.stderr
issue-21356.rs
issue-21356.stderr
issue-22463.rs
issue-25274.rs
issue-25385.rs
issue-25385.stderr
issue-26094.rs
issue-26094.stderr
issue-26322.rs
issue-29084.rs
issue-29084.stderr
issue-30007.rs
issue-30007.stderr
issue-30143.rs
issue-30143.stderr
issue-33185.rs
issue-34171.rs
issue-34421-mac-expr-bad-stmt-good-add-semi.rs
issue-34421-mac-expr-bad-stmt-good-add-semi.stderr
issue-35450.rs
issue-35450.stderr
issue-37175.rs
issue-38715.rs
issue-38715.stderr
issue-39388.rs
issue-39388.stderr
issue-39404.rs
issue-39404.stderr
issue-39467.rs
issue-40469.rs
issue-40770.rs
issue-41776.rs
issue-41776.stderr
issue-41803.rs
issue-42954.fixed
issue-42954.rs
issue-42954.stderr
issue-44127.rs
issue-46438.rs
issue-46438.stderr
issue-51848.rs
issue-51848.stderr
issue-52169.rs
issue-54441.rs
issue-54441.stderr
issue-57597.rs
issue-57597.stderr
issue-58490.rs
issue-58490.stderr
issue-61033-1.rs
issue-61033-1.stderr
issue-61033-2.rs
issue-61033-2.stderr
issue-61053-different-kleene.rs
issue-61053-different-kleene.stderr
issue-61053-duplicate-binder.rs
issue-61053-duplicate-binder.stderr
issue-61053-missing-repetition.rs
issue-61053-missing-repetition.stderr
issue-61053-unbound.rs
issue-61053-unbound.stderr
issue-63102.rs
issue-68058.rs
issue-68060.rs
issue-68060.stderr
issue-69396-const-no-type-in-macro.rs
issue-69396-const-no-type-in-macro.stderr
issue-69838-mods-relative-to-included-path.rs
issue-70446.rs
issue-75982-foreign-macro-weird-mod.rs
issue-77475.rs
issue-78325-inconsistent-resolution.rs
issue-78325-inconsistent-resolution.stderr
issue-78333.rs
issue-78892-substitution-in-statement-attr.rs
issue-81006.rs
issue-81006.stderr
issue-83340.rs
issue-83340.stderr
issue-83344.rs
issue-83344.stderr
issue-84195-lint-anon-const.rs
issue-84195-lint-anon-const.stderr
issue-84429-matches-edition.rs
issue-84632-eager-expansion-recursion-limit.rs
issue-84632-eager-expansion-recursion-limit.stderr
issue-86082-option-env-invalid-char.rs
issue-86865.rs
issue-86865.stderr
issue-87877.rs
issue-88206.rs
issue-88206.stderr
issue-88228.rs
issue-88228.stderr
issue-92267.rs
issue-92267.stderr
issue-95267.rs
issue-95533.rs
issue-98466-allow.rs
issue-98466.fixed
issue-98466.rs
issue-98466.stderr
issue-99261.rs
issue-99265.fixed
issue-99265.rs
issue-99265.stderr
issue-99907.fixed
issue-99907.rs
issue-99907.stderr
issue-100199.rs
issue-100199.stderr
issue-102878.rs
issue-102878.stderr
issue-103529.rs
issue-103529.stderr
issue-104769-concat_bytes-invalid-literal.rs
issue-104769-concat_bytes-invalid-literal.stderr
issue-105011.rs
issue-105011.stderr
issue-106837.rs
issue-106837.stderr
issue-109237.rs
issue-109237.stderr
issue-111749.rs
issue-111749.stderr
issue-112342-1.rs
issue-112342-1.stderr
issue-112342-2.rs
issue-112342-2.stderr
issue-118048.rs Report infer ty errors during hir ty lowering 2025-06-27 07:51:38 +00:00
issue-118048.stderr Report infer ty errors during hir ty lowering 2025-06-27 07:51:38 +00:00
issue-118786.rs
issue-118786.stderr
lint-trailing-macro-call.rs
lint-trailing-macro-call.stderr
local-ambiguity-multiple-parsing-options.rs
local-ambiguity-multiple-parsing-options.stderr
log_syntax-trace_macros-macro-locations.rs
log_syntax-trace_macros-macro-locations.stdout
macro-2.rs
macro-as-fn-body.rs
macro-at-most-once-rep-2015-rpass.rs
macro-at-most-once-rep-2015.rs
macro-at-most-once-rep-2015.stderr
macro-at-most-once-rep-2018-rpass.rs
macro-at-most-once-rep-2018.rs
macro-at-most-once-rep-2018.stderr
macro-attribute-expansion.rs
macro-attribute.rs
macro-attribute.stderr
macro-attributes.rs
macro-backtrace-invalid-internals.rs
macro-backtrace-invalid-internals.stderr
macro-backtrace-nested.rs
macro-backtrace-nested.stderr
macro-backtrace-println.rs
macro-backtrace-println.stderr
macro-block-nonterminal.rs
macro-comma-behavior-rpass.rs
macro-comma-behavior.core.stderr
macro-comma-behavior.rs
macro-comma-behavior.std.stderr
macro-comma-support-rpass.rs Remove the deprecated concat_idents! macro 2025-06-24 11:07:16 +00:00
macro-comma-support.rs
macro-comma-support.stderr
macro-context.rs
macro-context.stderr
macro-crate-def-only.rs
macro-crate-nonterminal-non-root.rs
macro-crate-nonterminal-non-root.stderr
macro-crate-nonterminal-renamed.rs
macro-crate-nonterminal.rs
macro-crate-use.rs
macro-deep_expansion.rs
macro-def-site-super.rs
macro-delimiter-significance.rs
macro-deprecation.rs
macro-deprecation.stderr
macro-doc-comments.rs
macro-doc-escapes.rs
macro-doc-raw-str-hashes.rs
macro-error.rs
macro-error.stderr
macro-expand-within-generics-in-path.rs
macro-expand-within-generics-in-path.stderr
macro-expansion-tests.rs
macro-expansion-tests.stderr
macro-export-inner-module.rs
macro-first-set.rs
macro-follow-rpass.rs
macro-follow.rs
macro-follow.stderr
macro-followed-by-seq-bad.rs
macro-followed-by-seq-bad.stderr
macro-followed-by-seq.rs
macro-in-expression-context-2.rs
macro-in-expression-context-2.stderr
macro-in-expression-context.fixed
macro-in-expression-context.rs
macro-in-expression-context.stderr
macro-in-fn.rs
macro-include-items.rs
macro-inner-attributes.rs
macro-inner-attributes.stderr
macro-input-future-proofing.rs
macro-input-future-proofing.stderr
macro-interpolation.rs
macro-interpolation.stderr
macro-invocation-in-count-expr-fixed-array-type.rs
macro-lifetime-used-with-bound.rs
macro-lifetime-used-with-labels.rs
macro-lifetime-used-with-static.rs
macro-lifetime.rs
macro-literal.rs
macro-local-data-key-priv.rs
macro-local-data-key-priv.stderr
macro-match-nonterminal.rs mbe: Clean up code with non-optional NonterminalKind 2025-06-24 04:37:36 -04:00
macro-match-nonterminal.stderr mbe: Clean up code with non-optional NonterminalKind 2025-06-24 04:37:36 -04:00
macro-meta-items-modern.rs
macro-meta-items.rs
macro-method-issue-4621.rs
macro-missing-delimiters.rs
macro-missing-delimiters.stderr
macro-missing-fragment-deduplication.rs mbe: Clean up code with non-optional NonterminalKind 2025-06-24 04:37:36 -04:00
macro-missing-fragment-deduplication.stderr mbe: Clean up code with non-optional NonterminalKind 2025-06-24 04:37:36 -04:00
macro-missing-fragment.rs mbe: Clean up code with non-optional NonterminalKind 2025-06-24 04:37:36 -04:00
macro-missing-fragment.stderr mbe: Clean up code with non-optional NonterminalKind 2025-06-24 04:37:36 -04:00
macro-multiple-items.rs
macro-multiple-matcher-bindings.rs
macro-multiple-matcher-bindings.stderr
macro-name-typo.rs
macro-name-typo.stderr
macro-named-default.rs
macro-nested_definition_issue-31946.rs
macro-nested_expr.rs
macro-nested_stmt_macros.rs
macro-non-lifetime.rs
macro-non-lifetime.stderr
macro-nt-list.rs
macro-of-higher-order.rs
macro-or-patterns-back-compat.fixed
macro-or-patterns-back-compat.rs
macro-or-patterns-back-compat.stderr
macro-outer-attributes.rs
macro-outer-attributes.stderr
macro-parameter-span.rs
macro-parameter-span.stderr
macro-pat-follow-2018.rs
macro-pat-follow.rs
macro-pat-neg-lit.rs
macro-pat-pattern-followed-by-or-in-2021.rs
macro-pat-pattern-followed-by-or-in-2021.stderr
macro-pat-pattern-followed-by-or.rs
macro-pat.rs
macro-pat2021-pattern-followed-by-or.rs
macro-pat2021-pattern-followed-by-or.stderr
macro-path-prelude-fail-1.rs
macro-path-prelude-fail-1.stderr
macro-path-prelude-fail-2.rs
macro-path-prelude-fail-2.stderr
macro-path-prelude-fail-3.rs
macro-path-prelude-fail-3.stderr
macro-path-prelude-fail-4.rs
macro-path-prelude-fail-4.stderr
macro-path-prelude-fail-5.rs
macro-path-prelude-fail-5.stderr
macro-path-prelude-pass.rs
macro-path-prelude-shadowing.rs
macro-path-prelude-shadowing.stderr
macro-path.rs
macro-pub-matcher.rs
macro-quote-test.rs
macro-reexport-removed.rs Don't include current rustc version string in feature removed help 2025-06-24 23:32:09 +08:00
macro-reexport-removed.stderr Don't include current rustc version string in feature removed help 2025-06-24 23:32:09 +08:00
macro-rules-as-derive-or-attr-issue-132928.rs
macro-rules-as-derive-or-attr-issue-132928.stderr
macro-seq-followed-by-seq.rs
macro-shadowing-relaxed.rs
macro-shadowing.rs
macro-shadowing.stderr
macro-span-issue-116502.rs Report infer ty errors during hir ty lowering 2025-06-27 07:51:38 +00:00
macro-span-issue-116502.stderr Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
macro-stability-rpass.rs
macro-stability.rs
macro-stability.stderr
macro-stmt-2.rs
macro-stmt-matchers.rs
macro-stmt.rs
macro-stmt_macro_in_expr_macro.rs
macro-tt-followed-by-seq.rs
macro-tt-matchers.rs
macro-use-all-and-none.rs
macro-use-all-and-none.stderr
macro-use-all.rs
macro-use-bad-args-1.rs
macro-use-bad-args-1.stderr
macro-use-bad-args-2.rs
macro-use-bad-args-2.stderr
macro-use-both.rs
macro-use-one.rs
macro-use-scope.rs
macro-use-undef.rs
macro-use-undef.stderr
macro-use-wrong-name.rs
macro-use-wrong-name.stderr
macro-with-attrs1.rs
macro-with-attrs2.rs
macro-with-braces-in-expr-position.rs
macro_path_as_generic_bound.rs
macro_path_as_generic_bound.stderr
macro_rules-unmatchable-literals.rs
macro_rules-unmatchable-literals.stderr
macro_undefined.rs
macro_undefined.stderr
macro_with_super_2.rs
macros-in-extern.rs
macros-in-trait-positions-issue-40845.rs
macros-in-trait-positions-issue-40845.stderr
macros-nonfatal-errors.rs Remove the deprecated concat_idents! macro 2025-06-24 11:07:16 +00:00
macros-nonfatal-errors.stderr Remove the deprecated concat_idents! macro 2025-06-24 11:07:16 +00:00
malformed_macro_lhs.rs
malformed_macro_lhs.stderr
meta-item-absolute-path.rs
meta-item-absolute-path.stderr
meta-variable-depth-outside-repeat.rs
meta-variable-depth-outside-repeat.stderr
meta-variable-misuse.rs
metavar_cross_edition_recursive_macros.rs
missing-bang-in-decl.fixed
missing-bang-in-decl.rs
missing-bang-in-decl.stderr
missing-comma.rs
missing-comma.stderr
missing-derive-1.rs
missing-derive-1.stderr
missing-derive-2.rs
missing-derive-2.stderr
missing-derive-3.rs
missing-derive-3.stderr
missing-semi.rs
missing-semi.stderr
missing-writer-issue-139830.rs Don't suggest changing a method inside a expansion 2025-06-22 17:08:54 +02:00
missing-writer-issue-139830.stderr Don't suggest changing a method inside a expansion 2025-06-22 17:08:54 +02:00
missing-writer.rs
missing-writer.stderr
module-macro_use-arguments.rs
module-macro_use-arguments.stderr
must-use-in-macro-55516.rs
must-use-in-macro-55516.stderr Bless tests/ui/macros/must-use-in-macro-55516.rs 2025-06-25 23:58:57 +02:00
nested-macro-expansion.rs
nested-use-as.rs
no-close-delim-issue-139248.rs
no-close-delim-issue-139248.stderr
no-matching-rule.rs
no-matching-rule.stderr
no-patterns-in-args-macro.rs
no-patterns-in-args-macro.stderr
no-std-macros.rs
non-fmt-panic.fixed
non-fmt-panic.rs
non-fmt-panic.stderr
none-delim-lookahead.rs
nonterminal-matching.rs
nonterminal-matching.stderr
not-utf8.bin
not-utf8.rs
not-utf8.stderr
out-of-order-shadowing.rs
out-of-order-shadowing.stderr
out-of-scope-calls-false-positives.rs
out-of-scope-macro-calls-lint-registered.rs
panic-temporaries-2018.rs
panic-temporaries.rs
paren-or-brace-expected.rs
paren-or-brace-expected.stderr
parse-complex-macro-invoc-op.rs
paths-in-macro-invocations.rs
println-percent-prefix-num-issue-125002.rs
println-percent-prefix-num-issue-125002.stderr
proc_macro.rs
pub-item-inside-macro.rs
pub-method-inside-macro.rs
recovery-allowed.rs
recovery-allowed.stderr
recovery-forbidden.rs
remove-repetition-issue-139480.rs
remove-repetition-issue-139480.stderr
reparse-expr-issue-139495.rs
reparse-expr-issue-139495.stderr
restricted-shadowing-legacy.rs
restricted-shadowing-legacy.stderr
restricted-shadowing-modern.rs
restricted-shadowing-modern.stderr
return_from_external_macro.rs
return_from_external_macro.stderr
same-sequence-span.rs
same-sequence-span.stderr
semi-after-macro-ty.rs
span-covering-argument-1.rs
span-covering-argument-1.stderr
std-2024-macros.rs
stmt_expr_attr_macro_parse.rs
stringify.rs Change const trait bound syntax from ~const to [const] 2025-06-26 13:46:45 +00:00
syntax-error-recovery.rs
syntax-error-recovery.stderr
syntax-extension-cfg.rs
syntax-extension-source-utils.rs
trace-macro.rs
trace-macro.stderr
trace_faulty_macros.rs
trace_faulty_macros.stderr
trace_macros-format.rs
trace_macros-format.stderr
try-macro.rs
two-macro-use.rs
type-macros-hlist.rs
type-macros-simple.rs
typeck-macro-interaction-issue-8852.rs
unimplemented-macro-panic.rs
unknown-builtin.rs
unknown-builtin.stderr
unreachable-arg.edition_2021.stderr
unreachable-arg.rs
unreachable-fmt-msg.rs
unreachable-format-arg.rs
unreachable-format-args.edition_2015.stderr
unreachable-format-args.rs
unreachable-macro-panic.rs
unreachable-static-msg.rs
unreachable.rs
use-macro-self.rs
user-defined-macro-rules.rs
vec-macro-in-pattern.rs
vec-macro-in-pattern.stderr