diff --git a/tests/ui/weak-new-uninhabited-issue-48493.rs b/tests/ui/allocator/weak-uninhabited-type.rs similarity index 100% rename from tests/ui/weak-new-uninhabited-issue-48493.rs rename to tests/ui/allocator/weak-uninhabited-type.rs diff --git a/tests/ui/unnamed_argument_mode.rs b/tests/ui/binding/underscore-prefixed-function-argument.rs similarity index 100% rename from tests/ui/unnamed_argument_mode.rs rename to tests/ui/binding/underscore-prefixed-function-argument.rs diff --git a/tests/ui/walk-struct-literal-with.rs b/tests/ui/borrowck/ownership-struct-update-moved-error.rs similarity index 100% rename from tests/ui/walk-struct-literal-with.rs rename to tests/ui/borrowck/ownership-struct-update-moved-error.rs diff --git a/tests/ui/walk-struct-literal-with.stderr b/tests/ui/borrowck/ownership-struct-update-moved-error.stderr similarity index 100% rename from tests/ui/walk-struct-literal-with.stderr rename to tests/ui/borrowck/ownership-struct-update-moved-error.stderr diff --git a/tests/ui/unused-move-capture.rs b/tests/ui/closures/no-capture-closure-call.rs similarity index 100% rename from tests/ui/unused-move-capture.rs rename to tests/ui/closures/no-capture-closure-call.rs diff --git a/tests/ui/unknown-llvm-arg.rs b/tests/ui/codegen/llvm-args-invalid-flag.rs similarity index 100% rename from tests/ui/unknown-llvm-arg.rs rename to tests/ui/codegen/llvm-args-invalid-flag.rs diff --git a/tests/ui/unknown-llvm-arg.stderr b/tests/ui/codegen/llvm-args-invalid-flag.stderr similarity index 100% rename from tests/ui/unknown-llvm-arg.stderr rename to tests/ui/codegen/llvm-args-invalid-flag.stderr diff --git a/tests/ui/unused-move.rs b/tests/ui/drop/box-drop-unused-value-statement-regression.rs similarity index 100% rename from tests/ui/unused-move.rs rename to tests/ui/drop/box-drop-unused-value-statement-regression.rs diff --git a/tests/ui/weird-exprs.rs b/tests/ui/expr/syntax-edge-cases-lint-clean.rs similarity index 100% rename from tests/ui/weird-exprs.rs rename to tests/ui/expr/syntax-edge-cases-lint-clean.rs diff --git a/tests/ui/wrong-hashset-issue-42918.rs b/tests/ui/hashmap/hashset-enum-variant.rs similarity index 100% rename from tests/ui/wrong-hashset-issue-42918.rs rename to tests/ui/hashmap/hashset-enum-variant.rs diff --git a/tests/ui/write-fmt-errors.rs b/tests/ui/io-checks/write-macro-error.rs similarity index 100% rename from tests/ui/write-fmt-errors.rs rename to tests/ui/io-checks/write-macro-error.rs diff --git a/tests/ui/unknown-language-item.rs b/tests/ui/lang-items/lang-item-unknown-definition-error.rs similarity index 100% rename from tests/ui/unknown-language-item.rs rename to tests/ui/lang-items/lang-item-unknown-definition-error.rs diff --git a/tests/ui/unknown-language-item.stderr b/tests/ui/lang-items/lang-item-unknown-definition-error.stderr similarity index 100% rename from tests/ui/unknown-language-item.stderr rename to tests/ui/lang-items/lang-item-unknown-definition-error.stderr diff --git a/tests/ui/use-import-export.rs b/tests/ui/modules/module-qualified-paths-basic.rs similarity index 100% rename from tests/ui/use-import-export.rs rename to tests/ui/modules/module-qualified-paths-basic.rs diff --git a/tests/ui/use-nested-groups.rs b/tests/ui/modules/module-use-nested-groups.rs similarity index 100% rename from tests/ui/use-nested-groups.rs rename to tests/ui/modules/module-use-nested-groups.rs diff --git a/tests/ui/use-module-level-int-consts.rs b/tests/ui/modules/primitive-type-module-deprecated-paths.rs similarity index 100% rename from tests/ui/use-module-level-int-consts.rs rename to tests/ui/modules/primitive-type-module-deprecated-paths.rs diff --git a/tests/ui/use-keyword-2.rs b/tests/ui/modules/use-keyword-reexport-type-alias.rs similarity index 100% rename from tests/ui/use-keyword-2.rs rename to tests/ui/modules/use-keyword-reexport-type-alias.rs diff --git a/tests/ui/unsigned-literal-negation.rs b/tests/ui/numbers-arithmetic/unary-negation-unsigned-integer-error.rs similarity index 100% rename from tests/ui/unsigned-literal-negation.rs rename to tests/ui/numbers-arithmetic/unary-negation-unsigned-integer-error.rs diff --git a/tests/ui/unsigned-literal-negation.stderr b/tests/ui/numbers-arithmetic/unary-negation-unsigned-integer-error.stderr similarity index 100% rename from tests/ui/unsigned-literal-negation.stderr rename to tests/ui/numbers-arithmetic/unary-negation-unsigned-integer-error.stderr diff --git a/tests/ui/unwind-no-uwtable.rs b/tests/ui/panics/unwind-force-no-unwind-tables.rs similarity index 100% rename from tests/ui/unwind-no-uwtable.rs rename to tests/ui/panics/unwind-force-no-unwind-tables.rs diff --git a/tests/ui/wait-forked-but-failed-child.rs b/tests/ui/process/process-spawn-failure.rs similarity index 100% rename from tests/ui/wait-forked-but-failed-child.rs rename to tests/ui/process/process-spawn-failure.rs diff --git a/tests/ui/weird-exit-code.rs b/tests/ui/process/windows-exit-code-still-active.rs similarity index 100% rename from tests/ui/weird-exit-code.rs rename to tests/ui/process/windows-exit-code-still-active.rs diff --git a/tests/ui/unreachable-code-1.rs b/tests/ui/reachable/diverging-expressions-unreachable-code.rs similarity index 100% rename from tests/ui/unreachable-code-1.rs rename to tests/ui/reachable/diverging-expressions-unreachable-code.rs diff --git a/tests/ui/unreachable-code.rs b/tests/ui/reachable/unreachable-code-diverging-expressions.rs similarity index 100% rename from tests/ui/unreachable-code.rs rename to tests/ui/reachable/unreachable-code-diverging-expressions.rs diff --git a/tests/ui/virtual-call-attrs-issue-137646.rs b/tests/ui/traits/virtual-call-parameter-handling.rs similarity index 100% rename from tests/ui/virtual-call-attrs-issue-137646.rs rename to tests/ui/traits/virtual-call-parameter-handling.rs diff --git a/tests/ui/unit.rs b/tests/ui/type/unit-type-basic-usages.rs similarity index 100% rename from tests/ui/unit.rs rename to tests/ui/type/unit-type-basic-usages.rs diff --git a/tests/ui/usize-generic-argument-parent.rs b/tests/ui/type/usize-no-generic-arguments.rs similarity index 100% rename from tests/ui/usize-generic-argument-parent.rs rename to tests/ui/type/usize-no-generic-arguments.rs diff --git a/tests/ui/usize-generic-argument-parent.stderr b/tests/ui/type/usize-no-generic-arguments.stderr similarity index 100% rename from tests/ui/usize-generic-argument-parent.stderr rename to tests/ui/type/usize-no-generic-arguments.stderr diff --git a/tests/ui/uninit-empty-types.rs b/tests/ui/unsafe/maybe-uninit-zero-sized-types.rs similarity index 100% rename from tests/ui/uninit-empty-types.rs rename to tests/ui/unsafe/maybe-uninit-zero-sized-types.rs