rust/tests/ui
León Orell Valerian Liehr 2a8bb6eda1
Rollup merge of #144218 - Noratrieb:target-spec-json-de-jank, r=fee1-dead
Use serde for target spec json deserialize

The previous manual parsing of `serde_json::Value` was a lot of complicated code and extremely error-prone. It was full of janky behavior like sometimes ignoring type errors, sometimes erroring for type errors, sometimes warning for type errors, and sometimes just ICEing for type errors (the icing on the top).

Additionally, many of the error messages about allowed values were out of date because they were in a completely different place than the FromStr impls. Overall, the system caused confusion for users.

I also found the old deserialization code annoying to read. Whenever a `key!` invocation was found, one had to first look for the right macro arm, and no go to definition could help.

This PR replaces all this manual parsing with a 2-step process involving serde.
First, the string is parsed into a `TargetSpecJson` struct. This struct is a 1:1 representation of the spec JSON. It already parses all the enums and is very simple to read and write.
Then, the fields from this struct are copied into the actual `Target`. The reason for this two-step process instead of just serializing into a `Target` is because of a few reasons

 1. There are a few transformations performed between the two formats
 2. The default logic is implemented this way. Otherwise all the default field values would have to be spelled out again, which is suboptimal. With this logic, they fall out naturally, because everything in the json struct is an `Option`.

Overall, the mapping is pretty simple, with the vast majority of fields just doing a 1:1 mapping that is captured by two macros. I have deliberately avoided making the macros generic to keep them simple.

All the `FromStr` impls now have the error message right inside them, which increases the chance of it being up to date. Some "`from_str`" impls were turned into proper `FromStr` impls to support this.

The new code is much less involved, delegating all the JSON parsing logic to serde, without any manual type matching.

This change introduces a few breaking changes for consumers. While it is possible to use this format on stable, it is very much subject to change, so breaking changes are expected. The hope is also that because of the way stricter behavior, breaking changes are easier to deal with, as they come with clearer error messages.

1. Invalid types now always error, everywhere. Previously, they would sometimes error, and sometimes just be ignored (which meant the users JSON was still broken, just silently!)
2. This now makes use of `deny_unknown_fields` instead of just warning on unused fields, which was done previously. Serde doesn't make it easy to get such warning behavior, which was the primary reason that this now changed. But I think error behavior is very reasonable too. If someone has random stale fields in their JSON, it is likely because these fields did something at some point but no longer do, and the user likely wants to be informed of this so they can figure out what to do.

   This is also relevant for the future. If we remove a field but someone has it set, it probably makes sense for them to take a look whether they need this and should look for alternatives, or whether they can just delete it. Overall, the JSON is made more explicit.

This is the only expected breakage, but there could also be small breakage from small mistakes. All targets roundtrip though, so it can't be anything too major.

fixes rust-lang/rust#144153
2025-07-24 15:08:22 +02:00
..
abi Rename tests/codegen into tests/codegen-llvm 2025-07-22 14:28:48 +02:00
alloc-error Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
allocator Rollup merge of #143303 - Kivooeo:tf28, r=tgross35 2025-07-11 07:35:19 +02:00
annotate-snippet compiletest: Support matching on non-json lines in compiler output 2025-05-04 18:27:45 +03:00
anon-params UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
argfile Remove the -test suffix from normalize directives 2024-12-27 19:58:16 +11:00
argument-suggestions compiletest: Improve diagnostics for line annotation mismatches 2025-06-23 21:30:56 +03:00
array-slice-vec stabilize gai 2025-06-11 15:30:15 +01:00
asm Mitigate #[align] name resolution ambiguity regression with a rename 2025-07-19 01:42:30 +08:00
associated-consts Auto merge of #143357 - cjgillot:no-assoc-item-kind, r=compiler-errors 2025-07-13 22:39:10 +00:00
associated-inherent-types Avoid looking at HIR for trait and impl items 2025-06-30 08:45:43 +00:00
associated-item Reword diagnostics about relaxed bounds in invalid contexts 2025-07-18 12:13:19 +02:00
associated-type-bounds Point to correct argument in Func Call when Self type fails trait bound 2025-07-07 16:47:15 +08:00
associated-types Reword diagnostics about relaxed bounds in invalid contexts 2025-07-18 12:13:19 +02:00
async-await Rollup merge of #143699 - compiler-errors:async-drop-fund, r=oli-obk 2025-07-18 14:49:17 +02:00
attributes Update uitest stderrs 2025-07-23 13:33:23 +02:00
auto-traits Rollup merge of #143302 - Kivooeo:tf27, r=tgross35 2025-07-11 07:35:18 +02:00
autodiff Update UI tests 2025-05-21 07:24:43 +00:00
autoref-autoderef Rollup merge of #141888 - ferrocene:lw/decouple-tests-from-2015, r=compiler-errors 2025-06-04 07:54:35 +02:00
backtrace tests: use needs-subprocess instead of ignore-{wasm32,emscripten,sgx} 2025-01-23 20:51:29 +08:00
bench tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
binding cleaned up some tests 2025-07-10 18:50:35 +05:00
binop Rollup merge of #143299 - Kivooeo:tf24, r=tgross35 2025-07-04 23:26:23 -07:00
blind compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
block-result compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
bootstrap compiletest: Support matching on non-json lines in compiler output 2025-05-04 18:27:45 +03:00
borrowck Rollup merge of #144014 - dianne:edition-guide-links, r=estebank 2025-07-24 15:08:21 +02:00
box cleaned up some tests 2025-06-11 17:49:03 +05:00
btreemap Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
builtin-superkinds Mention type parameter in more cases and don't suggest ~const bound already there 2024-12-07 21:37:13 +00:00
c-variadic variadic functions: remove list of supported ABIs from error 2025-06-13 18:10:06 +02:00
cast Rollup merge of #143678 - Kivooeo:char-overflow, r=SparrowLii 2025-07-17 03:58:31 +02:00
cfg tests: Add a regression test for crt-static with target features 2025-07-18 19:00:52 +02:00
check-cfg Use serde for target spec json deserialize 2025-07-21 19:32:44 +02:00
closure-expected-type
closure_context
closures future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
cmse-nonsecure tests: bless s/C-cmse/cmse/ 2025-06-25 00:52:11 -07:00
codegen Use serde for target spec json deserialize 2025-07-21 19:32:44 +02:00
codemap_tests Bless/update tests. 2025-06-18 10:20:43 +02:00
coercion cleaned up some tests 2025-07-05 00:45:24 +05:00
coherence Remove Symbol for Named LateParam/Bound variants 2025-07-04 18:14:22 +00:00
coinduction
command Move #![crate_type] UI tests into attributes directory 2025-02-15 03:41:07 +01:00
compare-method Trim suggestion parts to the subset that is purely additive 2025-02-14 00:44:10 -08:00
compiletest-self-test Rollup merge of #143118 - Kivooeo:tf15, r=tgross35 2025-06-30 19:23:17 +08:00
conditional-compilation Changes to diagnostics 2025-07-15 09:21:27 +02:00
confuse-field-and-method Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
const-generics Auto merge of #144233 - cjgillot:unsat-mir, r=oli-obk 2025-07-23 20:16:03 +00:00
const-ptr cleaned up some tests 2025-07-05 01:54:04 +05:00
const_prop Make missing lifetime suggestion verbose 2025-06-24 18:59:42 +00:00
consts Rollup merge of #144014 - dianne:edition-guide-links, r=estebank 2025-07-24 15:08:21 +02:00
contracts tests: Require run-fail ui tests to have an exit code (SIGABRT not ok) 2025-07-19 18:44:07 +02:00
coroutine Eagerly unify coroutine witness in old solver 2025-07-17 17:42:28 +00:00
coverage-attr Port #[coverage] to the new attribute system 2025-07-16 15:51:18 +02:00
crate-loading tests: rebless some tests as a side-effect of TEST_BUILD_DIR changes 2025-03-04 00:21:02 +08:00
cross compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
cross-crate Rollup merge of #142440 - Kivooeo:tf14, r=tgross35 2025-07-04 23:26:19 -07:00
custom_test_frameworks Address review comments. 2025-04-01 16:07:23 +11:00
cycle-trait Merge lower_item into check_item_type 2025-06-30 08:45:43 +00:00
dataflow_const_prop dataflow_const_prop: do not eval a ptr address in SwitchInt 2024-12-09 21:06:29 +08:00
debuginfo tests: {Meta,Pointee}Sized in non-minicore tests 2025-06-16 23:04:33 +00:00
definition-reachable
delegation Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
dep-graph Use non-2015 edition paths in tests that do not test for their resolution 2025-06-03 10:13:33 +02:00
deprecation Rollup merge of #142200 - Kivooeo:tf8, r=jieyouxu 2025-06-25 22:14:54 +02:00
deref-patterns Cleaned up 5 tests in tests/ui 2025-04-21 16:16:38 +09:00
derived-errors Use non-2015 edition paths in tests that do not test for their resolution 2025-06-03 10:13:33 +02:00
derives Make Diag::multipart_suggestions always verbose 2025-07-10 17:23:29 +00:00
deriving Rollup merge of #141724 - Sol-Ell:issue-141141-fix, r=nnethercote 2025-06-03 15:00:32 +02:00
dest-prop
destructuring-assignment cleaned up some tests 2025-07-10 18:47:20 +05:00
diagnostic-flags cleaned up some tests 2025-07-17 15:51:32 +05:00
diagnostic-width Bless unicode test 2025-06-16 07:30:09 -04:00
diagnostic_namespace Split up the unknown_or_malformed_diagnostic_attributes lint 2025-07-11 01:24:24 +02:00
did_you_mean future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
directory_ownership tests: remove unused auxiliaries under tests/ui/directory_ownership/ 2025-04-17 19:45:28 +08:00
disallowed-deconstructing
dollar-crate
drop future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
drop-bounds
dropck Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
dst compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
duplicate UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
dyn-compatibility future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
dyn-drop Add missing dyn keywords to tests that do not test for them 2025-06-02 11:02:50 +02:00
dyn-keyword future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
dynamically-sized-types Allow dangerous_implicit_autorefs lint in some tests 2025-04-20 11:36:28 +02:00
editions future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
empty Rewrite empty attribute lint 2025-07-06 09:51:35 +02:00
entry-point Ensure we codegen and don't internalize the entrypoint 2025-07-21 19:54:37 -04:00
enum detect when variants have the same name as an associated function 2025-06-12 12:26:27 +02:00
enum-discriminant Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
env-macro Do not suggest using -Zmacro-backtrace for builtin macros 2025-03-14 19:50:03 +00:00
ergonomic-clones future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
error-codes Rollup merge of #143699 - compiler-errors:async-drop-fund, r=oli-obk 2025-07-18 14:49:17 +02:00
error-emitter reword suggestion message 2025-06-06 20:52:34 +00:00
errors future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
explain added error handle for error code > 9999 2025-05-06 23:02:47 +05:00
explicit compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
explicit-tail-calls const-eval error: always say in which item the error occurred 2025-06-07 13:42:30 +02:00
expr cleaned up some tests 2025-07-17 15:51:32 +05:00
extern tests: Require run-fail ui tests to have an exit code (SIGABRT not ok) 2025-07-19 18:44:07 +02:00
extern-flag Fix function signature for rust_eh_personality 2025-06-24 09:06:49 +00:00
feature-gates Update uitest stderrs 2025-07-23 13:33:23 +02:00
ffi-attrs error on unsafe attributes in pre-2024 editions 2025-04-13 01:22:59 +02:00
float tests: Use cfg_target_has_reliable_f16_f128 2025-07-05 02:02:09 -05:00
fmt cleaned up some tests 2025-07-17 15:51:32 +05:00
fn Rollup merge of #143296 - Kivooeo:tf21, r=tgross35 2025-07-04 23:26:21 -07:00
fn-main
for Make Diag::multipart_suggestions always verbose 2025-07-10 17:23:29 +00:00
for-loop-while Remove some unnecessary parens in assert! conditions 2025-02-06 22:28:44 +00:00
force-inlining make error codes reflect reality better 2025-06-17 23:22:51 +02:00
foreign compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
frontmatter Fix parsing of frontmatters with inner hyphens 2025-06-04 15:51:36 +00:00
fully-qualified-type compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
function-pointer Remove a duplicated check that doesn't do anything anymore. 2024-12-19 10:56:31 +00:00
functional-struct-update Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
functions-closures cleaned up some tests 2025-05-31 19:49:19 +05:00
generic-associated-types Gate things properly 2025-07-15 16:02:26 +00:00
generic-const-items Avoid looking at HIR for trait and impl items 2025-06-30 08:45:43 +00:00
generics Auto merge of #143357 - cjgillot:no-assoc-item-kind, r=compiler-errors 2025-07-13 22:39:10 +00:00
half-open-range-patterns Rollup merge of #138632 - clubby789:stabilize-cfg-boolean-lit, r=davidtwco,Urgau,traviscross 2025-04-17 06:25:15 +02:00
hashmap cleaned up some tests 2025-07-10 18:50:35 +05:00
hello_world
higher-ranked Auto merge of #143473 - workingjubilee:rollup-bxie7zg, r=scottmcm 2025-07-05 09:37:08 +00:00
hygiene Don't suggest changing a method inside a expansion 2025-06-22 17:08:54 +02:00
illegal-sized-bound UI tests: add missing diagnostic kinds where possible 2025-04-08 23:06:31 +03:00
impl-header-lifetime-elision compiletest: Improve diagnostics for line annotation mismatches 2025-06-23 21:30:56 +03:00
impl-trait Rollup merge of #144014 - dianne:edition-guide-links, r=estebank 2025-07-24 15:08:21 +02:00
implied-bounds Avoid looking at HIR for trait and impl items 2025-06-30 08:45:43 +00:00
imports chore: Improve how the other suggestions message gets rendered 2025-07-10 08:00:20 -06:00
include-macros cleaned up some tests 2025-06-11 20:51:49 +05:00
incoherent-inherent-impls chore: fix typos 2024-12-31 23:46:39 +08:00
indexing cleaned up some tests 2025-06-29 15:37:33 +05:00
inference Make Diag::multipart_suggestions always verbose 2025-07-10 17:23:29 +00:00
infinite Merge lower_item into check_item_type 2025-06-30 08:45:43 +00:00
inherent-impls-overlap-check Update tests to use new proc-macro header 2024-11-27 07:18:25 -08:00
inline-const const-block-as-pattern: do not refer to no-longer-existing nightly feature 2025-07-07 16:18:41 +02:00
instrument-coverage Update the minimum external LLVM to 19 2025-04-05 11:44:38 -07:00
instrument-xray Add compiler tests for xray 2025-05-26 00:39:23 +08:00
interior-mutability Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
internal compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
internal-lints Remove rustc::existing_doc_keyword lint. 2024-12-17 13:56:10 +11:00
intrinsics Show the memory of uninit reads 2025-07-18 07:47:08 +00:00
invalid Port #[rustc_layout_scalar_valid_range_start/end] to the new attribute parsing infrastructure 2025-06-27 09:08:21 +02:00
invalid-compile-flags tests: {Meta,Pointee}Sized in non-minicore tests 2025-06-16 23:04:33 +00:00
invalid-module-declaration compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
invalid-self-argument
io-checks Rollup merge of #143303 - Kivooeo:tf28, r=tgross35 2025-07-11 07:35:19 +02:00
issues Rollup merge of #144014 - dianne:edition-guide-links, r=estebank 2025-07-24 15:08:21 +02:00
iterators future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
json compiletest: Support matching on non-json lines in compiler output 2025-05-04 18:27:45 +03:00
keyword Reword "crate not found" resolve message 2025-01-24 01:19:50 +00:00
kindck Use more detailed spans in dyn compat errors within bodies 2025-05-27 08:18:11 +00:00
label early linting: avoid redundant calls to check_id 2025-06-12 19:01:19 +08:00
lang-items cleaned up some tests 2025-07-10 18:50:35 +05:00
late-bound-lifetimes
layout Consider parent predicates in ImpossiblePredicates pass. 2025-07-20 22:45:07 +00:00
lazy-type-alias Rollup merge of #143793 - fmease:lta-opaq-inf-recur, r=oli-obk 2025-07-17 10:41:45 +02:00
lazy-type-alias-impl-trait Implement #[define_opaque] attribute for functions. 2025-03-11 12:05:02 +00:00
let-else replace //@ compile-flags: --edition with //@ edition 2025-04-10 09:56:37 +02:00
lexer Add missing 2015 edition directives 2025-06-03 11:45:58 +02:00
lifetimes Lower extra lifetimes before normal generic params. 2025-07-20 13:21:22 +00:00
limits cleaned up some tests 2025-07-10 18:47:20 +05:00
link-native-libs tests: don't ignore compiler stderr in lib-defaults.rs 2025-05-06 16:49:25 +08:00
linkage-attr Port #[link_ordinal] to the new attribute parsing infrastructure. 2025-07-13 11:51:01 +02:00
linking Rollup merge of #143908 - Kivooeo:tf0, r=jieyouxu 2025-07-18 14:49:18 +02:00
lint Rollup merge of #144014 - dianne:edition-guide-links, r=estebank 2025-07-24 15:08:21 +02:00
liveness Bless/update tests. 2025-06-18 10:20:43 +02:00
loop-match loop_match: fix 'no terminator on block' 2025-07-07 13:55:40 +02:00
loops Bless/update tests. 2025-06-18 10:20:43 +02:00
lowering Remove ItemKind::descr method 2025-07-01 14:36:28 +02:00
lto Fix debuginfo-lto-alloc.rs test 2025-07-17 16:19:12 +00:00
lub-glb Tweak multispan rendering 2024-12-12 23:36:27 +00:00
macro_backtrace
macros Rollup merge of #144014 - dianne:edition-guide-links, r=estebank 2025-07-24 15:08:21 +02:00
malformed Port #[ignore] to the new attribute parsing infrastructure 2025-07-05 21:23:09 +02:00
marker_trait_attr Port #[marker] to the new attribute system 2025-07-09 01:18:28 +03:00
match Update uitest stderrs 2025-07-23 13:33:23 +02:00
meta Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
methods fix: fix issue 143740, Wrong messages from compiler confusing methods with the same name from different traits 2025-07-17 19:26:39 +08:00
mir Auto merge of #144233 - cjgillot:unsat-mir, r=oli-obk 2025-07-23 20:16:03 +00:00
mir-dataflow Improve borrowck_graphviz_* documentation. 2025-04-16 08:57:15 +10:00
mismatched_types cleaned up some tests 2025-07-05 00:45:24 +05:00
missing Integrate stable feature checking into a query. 2025-07-17 23:19:12 +00:00
missing-trait-bounds Use trait name instead of full constraint in suggestion message 2024-12-07 21:29:58 +00:00
missing_non_modrs_mod tests: use //@ ignore-auxiliary with backlinked primary test file 2025-04-17 19:45:28 +08:00
modules cleaned up some tests 2025-07-13 00:03:31 +05:00
modules_and_files_visibility suggest declaring modules when file found but module not defined 2025-06-25 01:12:15 +07:00
moves Suggest cloning Arc moved into closure 2025-06-24 18:44:41 +00:00
mut compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
namespace cleaned up some tests 2025-07-10 18:47:20 +05:00
never_type future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
new-range implement unstable new_range feature 2025-01-30 21:33:11 -07:00
nll Rollup merge of #144014 - dianne:edition-guide-links, r=estebank 2025-07-24 15:08:21 +02:00
no_std cleaned up some tests 2025-07-01 15:16:56 +05:00
non_modrs_mods tests: use //@ ignore-auxiliary with backlinked primary test file 2025-04-17 19:45:28 +08:00
non_modrs_mods_and_inline_mods tests: use //@ ignore-auxiliary with backlinked primary test file 2025-04-17 19:45:28 +08:00
not-panic Remove detail from label/note that is already available in other note 2024-10-29 16:26:57 +00:00
numbers-arithmetic cleaned up some tests 2025-07-10 18:50:35 +05:00
numeric compiletest: Do not require annotations on empty labels and suggestions 2025-05-03 22:49:23 +03:00
object-lifetime Rollup merge of #141610 - BoxyUwU:stabilize_generic_arg_infer, r=lcnr,traviscross 2025-06-18 18:06:49 +02:00
obsolete-in-place More sophisticated span trimming 2025-02-21 00:41:17 +00:00
offset-of tests: PointeeSized bounds with extern types 2025-06-16 23:04:35 +00:00
on-unimplemented Implement DesugaringKind::FormatLiteral 2025-06-22 10:58:25 +02:00
operator-recovery Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
or-patterns Error message for top-level or-patterns suggesting a solution 2025-05-09 22:16:34 +09:00
overloaded tests: remove //@ pretty-expanded usages 2024-11-26 02:50:48 +08:00
packed UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
panic-handler tests: {Meta,Pointee}Sized in non-minicore tests 2025-06-16 23:04:33 +00:00
panic-runtime Rollup merge of #140809 - bjorn3:panic_runtime_cleanup, r=petrochenkov 2025-06-27 22:13:01 +02:00
panics tests: Require run-fail ui tests to have an exit code (SIGABRT not ok) 2025-07-19 18:44:07 +02:00
parallel-rustc compiletest: Stricter parsing for diagnostic kinds 2025-04-07 19:13:31 +03:00
parser Rollup merge of #144014 - dianne:edition-guide-links, r=estebank 2025-07-24 15:08:21 +02:00
patchable-function-entry compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
pattern Rollup merge of #143519 - mu001999-contrib:dead-code/impl-items, r=petrochenkov 2025-07-13 15:15:57 +02:00
pin-ergonomics Move the place in &pin mut $place when !Unpin to ensure soundness 2025-06-15 10:31:11 +08:00
pin-macro collateral damage in derive tests, improves errors by not refering to implementation details 2025-05-02 18:09:31 +02:00
precondition-checks Rollup merge of #141260 - LuigiPiucco:volatile-null, r=RalfJung 2025-07-20 08:56:05 +02:00
print-request tests: Skip supported-crate-types test on musl hosts 2025-07-18 19:05:32 +02:00
print_type_sizes Wrap NonZero::new_unchecked call in the print_type_sizes test in a const 2025-05-27 00:35:25 -04:00
privacy tests: cover more exported_private_dependencies cases 2025-07-20 21:11:39 +02:00
proc-macro resolve: Merge NameBindingKind::Module into NameBindingKind::Res 2025-07-16 08:28:17 +03:00
process Rollup merge of #143303 - Kivooeo:tf28, r=tgross35 2025-07-11 07:35:19 +02:00
process-termination
ptr_ops cleaned up some tests 2025-07-13 00:03:31 +05:00
pub Use non-2015 edition paths in tests that do not test for their resolution 2025-06-03 13:35:31 +02:00
qualified Preserve generic args in suggestions for ambiguous associated items 2025-05-06 17:04:03 +02:00
query-system Move opaque type checks from the hir item types visitor onto the wfcheck of the opaqe type itself 2025-06-05 10:30:09 +00:00
range future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
raw-ref-op Auto merge of #134294 - matthiaskrgr:rollup-anh6io8, r=matthiaskrgr 2024-12-14 06:44:05 +00:00
reachable cleaned up some tests 2025-07-10 18:50:35 +05:00
recursion cleaned up some tests 2025-07-13 00:03:31 +05:00
recursion_limit Use non-2015 edition paths in tests that do not test for their resolution 2025-06-03 13:35:31 +02:00
regions Avoid looking at HIR for trait and impl items 2025-06-30 08:45:43 +00:00
repeat-expr Make Diag::multipart_suggestions always verbose 2025-07-10 17:23:29 +00:00
repr Rewrite empty attribute lint 2025-07-06 09:51:35 +02:00
reserved
resolve add non-regression test for issue 144168 2025-07-19 21:43:50 +00:00
return Merge typeck loop with static/const item eval loop 2025-05-09 15:31:27 +00:00
rfcs future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
rmeta compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
runtime cleaned up some tests 2025-06-08 11:25:09 +05:00
rust-2018 Don't use another main test file as auxiliary 2025-07-21 16:58:54 +08:00
rust-2021 future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
rust-2024 future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
rustc-env compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
rustc_public-ir-print fix ui/rustc_public-ir-print outputs 2025-07-18 18:49:33 +00:00
rustdoc Specify of_trait in Target::Impl. 2025-07-17 22:21:21 +00:00
sanitizer tests: Require run-fail ui tests to have an exit code (SIGABRT not ok) 2025-07-19 18:44:07 +02:00
self Reword mismatched-lifetime-syntaxes text based on feedback 2025-07-14 09:52:58 -04:00
sepcomp Use non-2015 edition paths in tests that do not test for their resolution 2025-06-05 09:19:31 +02:00
shadowed cleaned up some tests 2025-07-17 15:51:32 +05:00
shell-argfiles
simd Ban projecting into SIMD types [MCP838] 2025-07-20 10:22:09 -07:00
single-use-lifetime
sized cleaned up some tests 2025-07-05 01:54:04 +05:00
sized-hierarchy Consider param-env for fast path 2025-07-20 17:45:01 +00:00
span New example for E0536 2025-07-15 09:21:27 +02:00
specialization parse const trait Trait 2025-07-17 18:06:26 +08:00
stability-attribute Integrate stable feature checking into a query. 2025-07-17 23:19:12 +00:00
stack-protector tests: {Meta,Pointee}Sized in non-minicore tests 2025-06-16 23:04:33 +00:00
static Make Diag::multipart_suggestions always verbose 2025-07-10 17:23:29 +00:00
statics future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
stats Retire hir::*ItemRef. 2025-07-13 13:50:01 +00:00
std tests: Require run-fail ui tests to have an exit code (SIGABRT not ok) 2025-07-19 18:44:07 +02:00
stdlib-unit-tests Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
str cleaned up some tests 2025-07-05 01:25:48 +05:00
structs Add test for default_field_values and const_default 2025-07-17 19:26:45 +00:00
structs-enums Better recovery 2025-06-26 18:11:14 +00:00
suggestions Rollup merge of #144014 - dianne:edition-guide-links, r=estebank 2025-07-24 15:08:21 +02:00
svh cleaned up some tests 2025-07-13 00:03:31 +05:00
symbol-mangling-version compiletest: Support matching on diagnostics without a span 2025-03-25 17:33:09 +03:00
symbol-names Rollup merge of #143908 - Kivooeo:tf0, r=jieyouxu 2025-07-18 14:49:18 +02:00
sync cleaned up some tests 2025-07-05 01:54:04 +05:00
target-cpu tests: {Meta,Pointee}Sized in non-minicore tests 2025-06-16 23:04:33 +00:00
target-feature Rollup merge of #143300 - Kivooeo:tf25, r=tgross35 2025-07-04 23:26:23 -07:00
target_modifiers Make -Zfixed-x18 into a target modifier 2025-05-05 12:42:27 +00:00
test-attrs Rollup merge of #142214 - Kivooeo:tf9, r=jieyouxu 2025-06-29 12:29:54 +02:00
thir-print Auto merge of #142903 - cjgillot:local-def-path-hash, r=compiler-errors 2025-07-17 08:36:42 +00:00
thread-local Mark test as only-unix. 2025-03-27 14:11:11 +01:00
threads-sendsync cleaned up some tests 2025-07-01 15:16:56 +05:00
tool-attributes refactor AttributeGate and rustc_attr! to emit notes during feature checking 2025-06-09 11:44:24 +02:00
track-diagnostics refactor: Make -Ztrack-diagnostics emit like a note 2025-07-03 07:19:25 -06:00
trait-bounds Don't reject *multiple* relaxed bounds, reject *duplicate* ones. 2025-07-18 12:24:56 +02:00
traits Rollup merge of #144014 - dianne:edition-guide-links, r=estebank 2025-07-24 15:08:21 +02:00
transmutability transmutability: shift abstraction boundary 2025-06-09 14:08:12 +00:00
transmute cleaned up some tests 2025-07-13 00:03:31 +05:00
treat-err-as-bug const-eval error: always say in which item the error occurred 2025-06-07 13:42:30 +02:00
trivial-bounds Consider parent predicates in ImpossiblePredicates pass. 2025-07-20 22:45:07 +00:00
try-block Bless/update tests. 2025-06-18 10:20:43 +02:00
try-trait cleaned up some tests 2025-07-10 18:47:20 +05:00
tuple Use non-2015 edition paths in tests that do not test for their resolution 2025-06-05 09:19:31 +02:00
type Show the memory of uninit reads 2025-07-18 07:47:08 +00:00
type-alias Cleaned up 5 tests in tests/ui 2025-04-25 20:50:57 +09:00
type-alias-enum-variants cleaned up some tests 2025-06-30 12:45:47 +05:00
type-alias-impl-trait Update uitest stderrs 2025-07-23 13:33:23 +02:00
type-inference Rollup merge of #143302 - Kivooeo:tf27, r=tgross35 2025-07-11 07:35:18 +02:00
typeck Rollup merge of #138554 - xizheyin:issue-138401, r=chenyukang 2025-07-18 19:14:42 +02:00
typeof compiletest: Make diagnostic kind mandatory on line annotations 2025-04-30 10:44:24 +03:00
ufcs Rollup merge of #140370 - WaffleLapkin:unqualified, r=jdonszelmann 2025-06-01 19:35:41 +02:00
unboxed-closures added test for 30904 2025-06-08 03:44:44 +05:00
underscore-imports Emit a single error when importing a path with _ 2025-06-24 16:21:26 +00:00
underscore-lifetime Remove similar errors about raw underscore lifetime 2025-07-18 00:28:09 +08:00
uniform-paths
uninhabited Don't consider unstable fields always-inhabited 2025-07-20 18:23:18 +02:00
union Unconditionally run check_item_type on all items 2025-06-30 08:06:08 +00:00
unknown-unstable-lints UI tests: migrate remaining compile time error-patterns to line annotations 2025-04-13 21:48:53 +03:00
unop Mention type parameter in more cases and don't suggest ~const bound already there 2024-12-07 21:37:13 +00:00
unpretty Update uitest stderrs 2025-07-23 13:33:23 +02:00
unresolved Use non-2015 edition paths in tests that do not test for their resolution 2025-06-05 09:19:31 +02:00
unsafe future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
unsafe-binders Fix spans for unsafe binders 2025-05-30 16:58:48 +00:00
unsafe-fields Do not require that unsafe fields lack drop glue 2025-02-28 16:32:06 +00:00
unsized Don't reject *multiple* relaxed bounds, reject *duplicate* ones. 2025-07-18 12:24:56 +02:00
unsized-locals Error on moving unsized values rather than ICE'ing 2025-07-08 22:37:12 +02:00
unstable-feature-bound Add tests 2025-07-15 13:48:30 +00:00
unused-crate-deps
unwind-abis
use Bless/update tests. 2025-06-18 10:20:43 +02:00
variance Check variances in the non-hir wfchecker 2025-06-30 08:45:43 +00:00
variants Show diff suggestion format on verbose replacement 2025-02-10 20:21:39 +00:00
version
warnings Use non-2015 edition paths in tests that do not test for their resolution 2025-06-05 09:19:31 +02:00
wasm ...and wasm tests too 2025-07-20 10:15:14 -07:00
wf future-incompat lints: don't link to the nightly edition-guide version 2025-07-16 01:44:02 -07:00
where-clauses Consider param-env for fast path 2025-07-20 17:45:01 +00:00
while Quickfix //@ check-pass is enough 2025-02-04 21:42:43 +05:30
windows-subsystem compiletest: Require //~ annotations even if error-pattern is specified 2025-04-03 11:08:55 +03:00
zero-sized
.gitattributes
SUMMARY.md update SUMMARY.md 2025-07-22 14:59:46 +08:00