about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bootstrap/bootstrap.py2
-rw-r--r--src/bootstrap/channel.rs53
-rw-r--r--src/bootstrap/lib.rs2
-rw-r--r--src/ci/github-actions/ci.yml4
-rwxr-xr-xsrc/ci/scripts/should-skip-this.sh62
-rw-r--r--src/doc/unstable-book/src/language-features/raw-dylib.md34
-rw-r--r--src/librustdoc/clean/mod.rs10
-rw-r--r--src/librustdoc/html/render/mod.rs3
-rw-r--r--src/librustdoc/html/render/print_item.rs28
-rw-r--r--src/test/rustdoc-ui/coverage/enums.stdout4
-rw-r--r--src/test/rustdoc-ui/coverage/traits.rs2
-rw-r--r--src/test/rustdoc-ui/error-in-impl-trait/trait-alias-closure.rs2
-rw-r--r--src/test/rustdoc-ui/error-in-impl-trait/trait-alias.rs2
-rw-r--r--src/test/rustdoc/auxiliary/issue-73061.rs2
-rw-r--r--src/test/rustdoc/impl-trait-alias.rs2
-rw-r--r--src/test/rustdoc/return-impl-trait.rs2
-rw-r--r--src/test/rustdoc/toggle-item-contents.rs4
-rw-r--r--src/test/rustdoc/tuple-struct-fields-doc.rs36
-rw-r--r--src/test/ui-fulldeps/plugin-args.stderr1
-rw-r--r--src/test/ui/associated-type-bounds/duplicate.full_tait.stderr492
-rw-r--r--src/test/ui/associated-type-bounds/duplicate.rs263
-rw-r--r--src/test/ui/associated-type-bounds/duplicate.stderr (renamed from src/test/ui/associated-type-bounds/duplicate.min_tait.stderr)354
-rw-r--r--src/test/ui/associated-type-bounds/trait-alias-impl-trait.full_tait.stderr11
-rw-r--r--src/test/ui/associated-type-bounds/trait-alias-impl-trait.rs58
-rw-r--r--src/test/ui/associated-types/issue-63591.full_tait.stderr11
-rw-r--r--src/test/ui/associated-types/issue-63591.rs5
-rw-r--r--src/test/ui/async-await/issues/issue-60655-latebound-regions.full_tait.stderr11
-rw-r--r--src/test/ui/async-await/issues/issue-60655-latebound-regions.rs5
-rw-r--r--src/test/ui/bastion-of-the-turbofish.rs16
-rw-r--r--src/test/ui/borrowck/issue-33819.rs1
-rw-r--r--src/test/ui/borrowck/issue-33819.stderr2
-rw-r--r--src/test/ui/borrowck/issue-64453.rs2
-rw-r--r--src/test/ui/borrowck/issue-64453.stderr3
-rw-r--r--src/test/ui/borrowck/mut-borrow-of-mut-ref.rs2
-rw-r--r--src/test/ui/borrowck/mut-borrow-of-mut-ref.stderr6
-rw-r--r--src/test/ui/consts/const-eval/const_panic_2021.rs27
-rw-r--r--src/test/ui/consts/const-eval/const_panic_2021.stderr67
-rw-r--r--src/test/ui/did_you_mean/issue-31424.rs3
-rw-r--r--src/test/ui/did_you_mean/issue-31424.stderr10
-rw-r--r--src/test/ui/did_you_mean/issue-34126.rs1
-rw-r--r--src/test/ui/did_you_mean/issue-34126.stderr2
-rw-r--r--src/test/ui/did_you_mean/issue-34337.rs1
-rw-r--r--src/test/ui/did_you_mean/issue-34337.stderr2
-rw-r--r--src/test/ui/did_you_mean/issue-37139.rs1
-rw-r--r--src/test/ui/did_you_mean/issue-37139.stderr2
-rw-r--r--src/test/ui/entry-point/imported_main_const_fn_item_type_forbidden.rs2
-rw-r--r--src/test/ui/entry-point/imported_main_const_fn_item_type_forbidden.stderr2
-rw-r--r--src/test/ui/feature-gates/feature-gate-min_type_alias_impl_trait.rs50
-rw-r--r--src/test/ui/feature-gates/feature-gate-min_type_alias_impl_trait.stderr118
-rw-r--r--src/test/ui/feature-gates/feature-gate-type_alias_impl_trait.rs4
-rw-r--r--src/test/ui/feature-gates/feature-gate-type_alias_impl_trait.stderr14
-rw-r--r--src/test/ui/generator/layout-error.full_tait.stderr18
-rw-r--r--src/test/ui/generator/layout-error.min_tait.stderr19
-rw-r--r--src/test/ui/generator/layout-error.rs7
-rw-r--r--src/test/ui/generator/layout-error.stderr9
-rw-r--r--src/test/ui/generator/metadata-sufficient-for-layout.full_tait.stderr17
-rw-r--r--src/test/ui/generator/metadata-sufficient-for-layout.rs5
-rw-r--r--src/test/ui/generator/metadata-sufficient-for-layout.stderr (renamed from src/test/ui/generator/metadata-sufficient-for-layout.min_tait.stderr)2
-rw-r--r--src/test/ui/impl-trait/associated-impl-trait-type-generic-trait.full_tait.stderr11
-rw-r--r--src/test/ui/impl-trait/associated-impl-trait-type-generic-trait.rs5
-rw-r--r--src/test/ui/impl-trait/associated-impl-trait-type-trivial.full_tait.stderr11
-rw-r--r--src/test/ui/impl-trait/associated-impl-trait-type-trivial.rs5
-rw-r--r--src/test/ui/impl-trait/associated-impl-trait-type.full_tait.stderr11
-rw-r--r--src/test/ui/impl-trait/associated-impl-trait-type.rs5
-rw-r--r--src/test/ui/impl-trait/auto-trait.full_tait.stderr21
-rw-r--r--src/test/ui/impl-trait/auto-trait.rs5
-rw-r--r--src/test/ui/impl-trait/auto-trait.stderr (renamed from src/test/ui/impl-trait/auto-trait.min_tait.stderr)2
-rw-r--r--src/test/ui/impl-trait/bound-normalization-pass.rs2
-rw-r--r--src/test/ui/impl-trait/issue-55872-1.full_tait.stderr57
-rw-r--r--src/test/ui/impl-trait/issue-55872-1.rs5
-rw-r--r--src/test/ui/impl-trait/issue-55872-1.stderr (renamed from src/test/ui/impl-trait/issue-55872-1.min_tait.stderr)8
-rw-r--r--src/test/ui/impl-trait/issue-55872-2.full_tait.stderr28
-rw-r--r--src/test/ui/impl-trait/issue-55872-2.rs5
-rw-r--r--src/test/ui/impl-trait/issue-55872-2.stderr (renamed from src/test/ui/impl-trait/issue-55872-2.min_tait.stderr)4
-rw-r--r--src/test/ui/impl-trait/issue-55872.full_tait.stderr21
-rw-r--r--src/test/ui/impl-trait/issue-55872.rs7
-rw-r--r--src/test/ui/impl-trait/issue-55872.stderr (renamed from src/test/ui/impl-trait/issue-55872.min_tait.stderr)2
-rw-r--r--src/test/ui/impl-trait/issue-86465.rs2
-rw-r--r--src/test/ui/impl-trait/issues/issue-53457.full_tait.stderr11
-rw-r--r--src/test/ui/impl-trait/issues/issue-53457.rs6
-rw-r--r--src/test/ui/impl-trait/issues/issue-70877.min_tait.stderr15
-rw-r--r--src/test/ui/impl-trait/issues/issue-70877.rs5
-rw-r--r--src/test/ui/impl-trait/issues/issue-70877.stderr (renamed from src/test/ui/impl-trait/issues/issue-70877.full_tait.stderr)2
-rw-r--r--src/test/ui/impl-trait/issues/issue-78722.full_tait.stderr32
-rw-r--r--src/test/ui/impl-trait/issues/issue-78722.rs5
-rw-r--r--src/test/ui/impl-trait/issues/issue-78722.stderr (renamed from src/test/ui/impl-trait/issues/issue-78722.min_tait.stderr)4
-rw-r--r--src/test/ui/impl-trait/issues/issue-86201.rs2
-rw-r--r--src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.full_tait.stderr24
-rw-r--r--src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.rs5
-rw-r--r--src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.stderr (renamed from src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.min_tait.stderr)6
-rw-r--r--src/test/ui/impl-trait/multiple-lifetimes/error-handling.full_tait.stderr24
-rw-r--r--src/test/ui/impl-trait/multiple-lifetimes/error-handling.rs5
-rw-r--r--src/test/ui/impl-trait/multiple-lifetimes/error-handling.stderr (renamed from src/test/ui/impl-trait/multiple-lifetimes/error-handling.min_tait.stderr)2
-rw-r--r--src/test/ui/impl-trait/multiple-lifetimes/ordinary-bounds-pick-original-type-alias-impl-trait.rs2
-rw-r--r--src/test/ui/impl-trait/negative-reasoning.full_tait.stderr23
-rw-r--r--src/test/ui/impl-trait/negative-reasoning.rs5
-rw-r--r--src/test/ui/impl-trait/negative-reasoning.stderr (renamed from src/test/ui/impl-trait/negative-reasoning.min_tait.stderr)2
-rw-r--r--src/test/ui/impl-trait/type-alias-generic-param.full_tait.stderr11
-rw-r--r--src/test/ui/impl-trait/type-alias-generic-param.rs8
-rw-r--r--src/test/ui/impl-trait/type-alias-impl-trait-in-fn-body.full_tait.stderr11
-rw-r--r--src/test/ui/impl-trait/type-alias-impl-trait-in-fn-body.rs5
-rw-r--r--src/test/ui/impl-trait/where-allowed.stderr6
-rw-r--r--src/test/ui/issues/issue-60662.full_tait.stderr11
-rw-r--r--src/test/ui/issues/issue-60662.min_tait.stdout15
-rw-r--r--src/test/ui/issues/issue-60662.rs8
-rw-r--r--src/test/ui/issues/issue-60662.stdout (renamed from src/test/ui/issues/issue-60662.full_tait.stdout)2
-rw-r--r--src/test/ui/layout/debug.rs2
-rw-r--r--src/test/ui/lint/inline-trait-and-foreign-items.full_tait.stderr81
-rw-r--r--src/test/ui/lint/inline-trait-and-foreign-items.rs5
-rw-r--r--src/test/ui/lint/inline-trait-and-foreign-items.stderr (renamed from src/test/ui/lint/inline-trait-and-foreign-items.min_tait.stderr)18
-rw-r--r--src/test/ui/lint/lint-ctypes-73249-2.full_tait.stderr24
-rw-r--r--src/test/ui/lint/lint-ctypes-73249-2.rs9
-rw-r--r--src/test/ui/lint/lint-ctypes-73249-2.stderr (renamed from src/test/ui/lint/lint-ctypes-73249-2.min_tait.stderr)4
-rw-r--r--src/test/ui/lint/lint-ctypes-73249-3.full_tait.stderr24
-rw-r--r--src/test/ui/lint/lint-ctypes-73249-3.rs13
-rw-r--r--src/test/ui/lint/lint-ctypes-73249-3.stderr (renamed from src/test/ui/lint/lint-ctypes-73249-3.min_tait.stderr)4
-rw-r--r--src/test/ui/lint/lint-ctypes-73249-5.full_tait.stderr24
-rw-r--r--src/test/ui/lint/lint-ctypes-73249-5.rs13
-rw-r--r--src/test/ui/lint/lint-ctypes-73249-5.stderr (renamed from src/test/ui/lint/lint-ctypes-73249-5.min_tait.stderr)4
-rw-r--r--src/test/ui/lint/lint-ctypes-73251-1.full_tait.stderr24
-rw-r--r--src/test/ui/lint/lint-ctypes-73251-1.rs13
-rw-r--r--src/test/ui/lint/lint-ctypes-73251-1.stderr (renamed from src/test/ui/lint/lint-ctypes-73251-1.min_tait.stderr)4
-rw-r--r--src/test/ui/lint/lint-ctypes-73251-2.full_tait.stderr24
-rw-r--r--src/test/ui/lint/lint-ctypes-73251-2.rs18
-rw-r--r--src/test/ui/lint/lint-ctypes-73251-2.stderr (renamed from src/test/ui/lint/lint-ctypes-73251-2.min_tait.stderr)4
-rw-r--r--src/test/ui/lint/lint-ctypes-73251.full_tait.stderr11
-rw-r--r--src/test/ui/lint/lint-ctypes-73251.rs5
-rw-r--r--src/test/ui/lint/opaque-ty-ffi-unsafe.full_tait.stderr24
-rw-r--r--src/test/ui/lint/opaque-ty-ffi-unsafe.rs7
-rw-r--r--src/test/ui/lint/opaque-ty-ffi-unsafe.stderr (renamed from src/test/ui/lint/opaque-ty-ffi-unsafe.min_tait.stderr)4
-rw-r--r--src/test/ui/malformed/malformed-plugin-3.stderr1
-rw-r--r--src/test/ui/mir/issue-75053.full_tait.stderr17
-rw-r--r--src/test/ui/mir/issue-75053.rs5
-rw-r--r--src/test/ui/mir/issue-75053.stderr (renamed from src/test/ui/mir/issue-75053.min_tait.stderr)2
-rw-r--r--src/test/ui/nll/issue-51191.rs7
-rw-r--r--src/test/ui/nll/issue-51191.stderr16
-rw-r--r--src/test/ui/privacy/private-in-public-assoc-ty.full_tait.stderr77
-rw-r--r--src/test/ui/privacy/private-in-public-assoc-ty.rs5
-rw-r--r--src/test/ui/privacy/private-in-public-assoc-ty.stderr (renamed from src/test/ui/privacy/private-in-public-assoc-ty.min_tait.stderr)14
-rw-r--r--src/test/ui/privacy/private-in-public-type-alias-impl-trait.full_tait.stderr11
-rw-r--r--src/test/ui/privacy/private-in-public-type-alias-impl-trait.rs9
-rw-r--r--src/test/ui/save-analysis/issue-68621.full_tait.stderr17
-rw-r--r--src/test/ui/save-analysis/issue-68621.rs5
-rw-r--r--src/test/ui/save-analysis/issue-68621.stderr (renamed from src/test/ui/save-analysis/issue-68621.min_tait.stderr)2
-rw-r--r--src/test/ui/traits/alias/issue-83613.rs2
-rw-r--r--src/test/ui/type-alias-impl-trait/assoc-type-const.full_tait.stderr19
-rw-r--r--src/test/ui/type-alias-impl-trait/assoc-type-const.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/assoc-type-const.stderr (renamed from src/test/ui/type-alias-impl-trait/assoc-type-const.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.full_tait.stderr18
-rw-r--r--src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.stderr (renamed from src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/assoc-type-lifetime.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/assoc-type-lifetime.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/associated-type-alias-impl-trait.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/associated-type-alias-impl-trait.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/auxiliary/cross_crate_ice.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/auxiliary/cross_crate_ice2.rs7
-rw-r--r--src/test/ui/type-alias-impl-trait/bound_reduction.rs4
-rw-r--r--src/test/ui/type-alias-impl-trait/bound_reduction2.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/bound_reduction2.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/bound_reduction2.stderr (renamed from src/test/ui/type-alias-impl-trait/bound_reduction2.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/bounds-are-checked-2.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/bounds-are-checked-2.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/bounds-are-checked-2.stderr (renamed from src/test/ui/type-alias-impl-trait/bounds-are-checked-2.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/bounds-are-checked.full_tait.stderr35
-rw-r--r--src/test/ui/type-alias-impl-trait/bounds-are-checked.rs8
-rw-r--r--src/test/ui/type-alias-impl-trait/bounds-are-checked.stderr (renamed from src/test/ui/type-alias-impl-trait/bounds-are-checked.min_tait.stderr)8
-rw-r--r--src/test/ui/type-alias-impl-trait/coherence.full_tait.stderr18
-rw-r--r--src/test/ui/type-alias-impl-trait/coherence.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/coherence.stderr (renamed from src/test/ui/type-alias-impl-trait/coherence.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/declared_but_never_defined.full_tait.stderr17
-rw-r--r--src/test/ui/type-alias-impl-trait/declared_but_never_defined.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/declared_but_never_defined.stderr (renamed from src/test/ui/type-alias-impl-trait/declared_but_never_defined.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.full_tait.stderr32
-rw-r--r--src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.stderr (renamed from src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/different_defining_uses.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/different_defining_uses.rs8
-rw-r--r--src/test/ui/type-alias-impl-trait/different_defining_uses.stderr (renamed from src/test/ui/type-alias-impl-trait/different_defining_uses.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.full_tait.stderr35
-rw-r--r--src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.rs11
-rw-r--r--src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.stderr (renamed from src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.min_tait.stderr)8
-rw-r--r--src/test/ui/type-alias-impl-trait/different_defining_uses_never_type2.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/different_defining_uses_never_type2.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/fallback.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/fallback.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_different_defining_uses.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_different_defining_uses.rs8
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_different_defining_uses.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_different_defining_uses.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.rs8
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.full_tait.stderr38
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.rs10
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.min_tait.stderr)12
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use10.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use10.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.rs7
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.full_tait.stderr48
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.min_tait.stderr)8
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.full_tait.stderr36
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.min_tait.stderr)6
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use7.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use7.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.full_tait.stderr36
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.min_tait.stderr)6
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.full_tait.stderr60
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.min_tait.stderr)10
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_lifetime_param.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_lifetime_param.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_nondefining_use.min_tait.stderr35
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_nondefining_use.rs12
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_nondefining_use.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_nondefining_use.full_tait.stderr)16
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_not_used.full_tait.stderr27
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_not_used.rs7
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_not_used.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_not_used.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.full_tait.nll.stderr50
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.full_tait.stderr42
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.nll.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.min_tait.nll.stderr)8
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.min_tait.stderr)6
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_underconstrained.full_tait.stderr32
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_underconstrained.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_underconstrained.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_underconstrained.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_underconstrained2.full_tait.stderr52
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_underconstrained2.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/generic_underconstrained2.stderr (renamed from src/test/ui/type-alias-impl-trait/generic_underconstrained2.min_tait.stderr)8
-rw-r--r--src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.full_tait.stderr18
-rw-r--r--src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.stderr (renamed from src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.full_tait.stderr32
-rw-r--r--src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.stderr (renamed from src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.min_tait.stderr24
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.rs7
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.stderr14
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-52843.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-52843.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-52843.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-52843.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-53096.full_tait.stderr17
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-53096.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-53096.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-53096.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-53598.full_tait.stderr21
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-53598.rs7
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-53598.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-53598.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.full_tait.stderr17
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-55099-lifetime-inference.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-55099-lifetime-inference.rs11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-57188-associate-impl-capture.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-57188-associate-impl-capture.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.full_tait.nll.stderr47
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.full_tait.stderr20
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.nll.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.min_tait.nll.stderr)10
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-57700.full_tait.stderr21
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-57700.rs7
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-57700.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-57700.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-57807-associated-type.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-57807-associated-type.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-58887.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-58887.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-58951.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-58951.rs9
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-60371.stderr2
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-60407.full_tait.stderr17
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-60407.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-60407.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-60407.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-60564.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-60564.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-60564.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-60564.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-62000-associate-impl-trait-lifetimes.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-62000-associate-impl-trait-lifetimes.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-63263-closure-return.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-63263-closure-return.rs3
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-63263-closure-return.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-63279.full_tait.stderr21
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-63279.min_tait.stderr22
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-63279.rs7
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-63279.stderr12
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-63355.rs4
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-63677-type-alias-coherence.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-63677-type-alias-coherence.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-65384.rs2
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.full_tait.stderr17
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.min_tait.stderr21
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.rs9
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.stderr8
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-65918.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-66580-closure-coherence.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-66580-closure-coherence.rs9
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-67844-nested-opaque.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-67844-nested-opaque.rs10
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.full_tait.stderr20
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-ok.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-ok.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-69323.full.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-69323.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-70121.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-70121.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-74244.full_tait.stderr18
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-74244.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-74244.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-74244.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-74761-2.rs3
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-74761-2.stderr27
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-74761.full_tait.stderr24
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-74761.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-74761.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-74761.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.rs8
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.stderr (renamed from src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-78450.rs2
-rw-r--r--src/test/ui/type-alias-impl-trait/issue-78450.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-pass.rs2
-rw-r--r--src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn.rs2
-rw-r--r--src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn2.rs2
-rw-r--r--src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn3.rs2
-rw-r--r--src/test/ui/type-alias-impl-trait/nested_type_alias_impl_trait.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/nested_type_alias_impl_trait.rs23
-rw-r--r--src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.full_tait.stderr33
-rw-r--r--src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.stderr (renamed from src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.full_tait.stderr17
-rw-r--r--src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.stderr (renamed from src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.full_tait.stderr40
-rw-r--r--src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.stderr (renamed from src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/not_a_defining_use.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/not_a_defining_use.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/not_a_defining_use.stderr (renamed from src/test/ui/type-alias-impl-trait/not_a_defining_use.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/not_well_formed.full_tait.stderr18
-rw-r--r--src/test/ui/type-alias-impl-trait/not_well_formed.rs8
-rw-r--r--src/test/ui/type-alias-impl-trait/not_well_formed.stderr (renamed from src/test/ui/type-alias-impl-trait/not_well_formed.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/structural-match-no-leak.full_tait.stderr17
-rw-r--r--src/test/ui/type-alias-impl-trait/structural-match-no-leak.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/structural-match-no-leak.stderr (renamed from src/test/ui/type-alias-impl-trait/structural-match-no-leak.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/structural-match.full_tait.stderr17
-rw-r--r--src/test/ui/type-alias-impl-trait/structural-match.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/structural-match.stderr (renamed from src/test/ui/type-alias-impl-trait/structural-match.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.full_tait.stderr30
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.stderr (renamed from src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fns.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fns.rs10
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-sized.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-sized.rs21
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-tuple.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-tuple.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.full_tait.stderr18
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.stderr (renamed from src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.full_tait.stderr17
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.stderr (renamed from src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.full_tait.stderr17
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.rs9
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.stderr (renamed from src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.min_tait.stderr)2
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.stderr (renamed from src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.min_tait.stderr)4
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-impl-trait.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-nested-impl-trait.full_tait.stderr11
-rw-r--r--src/test/ui/type-alias-impl-trait/type-alias-nested-impl-trait.rs5
-rw-r--r--src/test/ui/type-alias-impl-trait/unused_generic_param.full_tait.stderr23
-rw-r--r--src/test/ui/type-alias-impl-trait/unused_generic_param.rs8
-rw-r--r--src/test/ui/type-alias-impl-trait/unused_generic_param.stderr (renamed from src/test/ui/type-alias-impl-trait/unused_generic_param.min_tait.stderr)4
-rw-r--r--src/test/ui/typeck/typeck_type_placeholder_item.full_tait.stderr647
-rw-r--r--src/test/ui/typeck/typeck_type_placeholder_item.rs5
-rw-r--r--src/test/ui/typeck/typeck_type_placeholder_item.stderr (renamed from src/test/ui/typeck/typeck_type_placeholder_item.min_tait.stderr)138
-rw-r--r--src/test/ui/wf/issue-87495.rs8
-rw-r--r--src/test/ui/wf/issue-87495.stderr18
m---------src/tools/miri16
394 files changed, 1294 insertions, 5214 deletions
diff --git a/src/bootstrap/bootstrap.py b/src/bootstrap/bootstrap.py
index d2cf929aa26..f2e38a7eab6 100644
--- a/src/bootstrap/bootstrap.py
+++ b/src/bootstrap/bootstrap.py
@@ -473,7 +473,7 @@ class RustBuild(object):
             ]).decode(sys.getdefaultencoding()).strip()
             llvm_sha = subprocess.check_output([
                 "git", "log", "--author=bors", "--format=%H", "-n1",
-                "-m", "--first-parent",
+                "--no-patch", "--first-parent",
                 "--",
                 "{}/src/llvm-project".format(top_level),
                 "{}/src/bootstrap/download-ci-llvm-stamp".format(top_level),
diff --git a/src/bootstrap/channel.rs b/src/bootstrap/channel.rs
index 6e65be93fec..6478578c3c4 100644
--- a/src/bootstrap/channel.rs
+++ b/src/bootstrap/channel.rs
@@ -12,11 +12,16 @@ use build_helper::output;
 
 use crate::Build;
 
-pub struct GitInfo {
-    inner: Option<Info>,
+pub enum GitInfo {
+    /// This is not a git repository.
+    Absent,
+    /// This is a git repository.
+    /// If the info should be used (`ignore_git` is false), this will be
+    /// `Some`, otherwise it will be `None`.
+    Present(Option<Info>),
 }
 
-struct Info {
+pub struct Info {
     commit_date: String,
     sha: String,
     short_sha: String,
@@ -25,14 +30,20 @@ struct Info {
 impl GitInfo {
     pub fn new(ignore_git: bool, dir: &Path) -> GitInfo {
         // See if this even begins to look like a git dir
-        if ignore_git || !dir.join(".git").exists() {
-            return GitInfo { inner: None };
+        if !dir.join(".git").exists() {
+            return GitInfo::Absent;
         }
 
         // Make sure git commands work
         match Command::new("git").arg("rev-parse").current_dir(dir).output() {
             Ok(ref out) if out.status.success() => {}
-            _ => return GitInfo { inner: None },
+            _ => return GitInfo::Absent,
+        }
+
+        // If we're ignoring the git info, we don't actually need to collect it, just make sure this
+        // was a git repo in the first place.
+        if ignore_git {
+            return GitInfo::Present(None);
         }
 
         // Ok, let's scrape some info
@@ -48,30 +59,35 @@ impl GitInfo {
         let short_ver_hash = output(
             Command::new("git").current_dir(dir).arg("rev-parse").arg("--short=9").arg("HEAD"),
         );
-        GitInfo {
-            inner: Some(Info {
-                commit_date: ver_date.trim().to_string(),
-                sha: ver_hash.trim().to_string(),
-                short_sha: short_ver_hash.trim().to_string(),
-            }),
+        GitInfo::Present(Some(Info {
+            commit_date: ver_date.trim().to_string(),
+            sha: ver_hash.trim().to_string(),
+            short_sha: short_ver_hash.trim().to_string(),
+        }))
+    }
+
+    fn info(&self) -> Option<&Info> {
+        match self {
+            GitInfo::Present(info) => info.as_ref(),
+            GitInfo::Absent => None,
         }
     }
 
     pub fn sha(&self) -> Option<&str> {
-        self.inner.as_ref().map(|s| &s.sha[..])
+        self.info().map(|s| &s.sha[..])
     }
 
     pub fn sha_short(&self) -> Option<&str> {
-        self.inner.as_ref().map(|s| &s.short_sha[..])
+        self.info().map(|s| &s.short_sha[..])
     }
 
     pub fn commit_date(&self) -> Option<&str> {
-        self.inner.as_ref().map(|s| &s.commit_date[..])
+        self.info().map(|s| &s.commit_date[..])
     }
 
     pub fn version(&self, build: &Build, num: &str) -> String {
         let mut version = build.release(num);
-        if let Some(ref inner) = self.inner {
+        if let Some(ref inner) = self.info() {
             version.push_str(" (");
             version.push_str(&inner.short_sha);
             version.push(' ');
@@ -82,6 +98,9 @@ impl GitInfo {
     }
 
     pub fn is_git(&self) -> bool {
-        self.inner.is_some()
+        match self {
+            GitInfo::Absent => false,
+            GitInfo::Present(_) => true,
+        }
     }
 }
diff --git a/src/bootstrap/lib.rs b/src/bootstrap/lib.rs
index 245f3eada2a..3d56650f775 100644
--- a/src/bootstrap/lib.rs
+++ b/src/bootstrap/lib.rs
@@ -1145,7 +1145,7 @@ impl Build {
         match &self.config.channel[..] {
             "stable" => num.to_string(),
             "beta" => {
-                if self.rust_info.is_git() {
+                if self.rust_info.is_git() && !self.config.ignore_git {
                     format!("{}-beta.{}", num, self.beta_prerelease_version())
                 } else {
                     format!("{}-beta", num)
diff --git a/src/ci/github-actions/ci.yml b/src/ci/github-actions/ci.yml
index e704071e401..128897e580b 100644
--- a/src/ci/github-actions/ci.yml
+++ b/src/ci/github-actions/ci.yml
@@ -416,6 +416,10 @@ jobs:
             env:
               IMAGE: x86_64-gnu
               RUST_CI_OVERRIDE_RELEASE_CHANNEL: stable
+              # Only run this job on the nightly channel. Running this on beta
+              # could cause failures when `dev: 1` in `stage0.txt`, and running
+              # this on stable is useless.
+              CI_ONLY_WHEN_CHANNEL: nightly
             <<: *job-linux-xl
 
           - name: x86_64-gnu-aux
diff --git a/src/ci/scripts/should-skip-this.sh b/src/ci/scripts/should-skip-this.sh
index fa738fe70c8..bb48fcb5a21 100755
--- a/src/ci/scripts/should-skip-this.sh
+++ b/src/ci/scripts/should-skip-this.sh
@@ -8,31 +8,43 @@ IFS=$'\n\t'
 
 source "$(cd "$(dirname "$0")" && pwd)/../shared.sh"
 
-if [[ -z "${CI_ONLY_WHEN_SUBMODULES_CHANGED+x}" ]]; then
-    echo "Executing the job since there is no skip rule in effect"
-    exit 0
+if [[ -n "${CI_ONLY_WHEN_SUBMODULES_CHANGED-}" ]]; then
+    git fetch "https://github.com/$GITHUB_REPOSITORY" "$GITHUB_BASE_REF"
+    BASE_COMMIT="$(git merge-base FETCH_HEAD HEAD)"
+
+    echo "Searching for toolstate changes between $BASE_COMMIT and $(git rev-parse HEAD)"
+
+    if git diff "$BASE_COMMIT" | grep --quiet "^index .* 160000"; then
+        # Submodules pseudo-files inside git have the 160000 permissions, so when
+        # those files are present in the diff a submodule was updated.
+        echo "Submodules were updated"
+    elif ! git diff --quiet "$BASE_COMMIT" -- src/tools/clippy src/tools/rustfmt; then
+        # There is not an easy blanket search for subtrees. For now, manually list
+        # the subtrees.
+        echo "Clippy or rustfmt subtrees were updated"
+    elif ! (git diff --quiet "$BASE_COMMIT" -- \
+             src/test/rustdoc-gui \
+             src/librustdoc \
+             src/tools/rustdoc-gui); then
+        # There was a change in either rustdoc or in its GUI tests.
+        echo "Rustdoc was updated"
+    else
+        echo "Not executing this job since no submodules nor subtrees were updated"
+        ciCommandSetEnv SKIP_JOB 1
+        exit 0
+    fi
 fi
 
-git fetch "https://github.com/$GITHUB_REPOSITORY" "$GITHUB_BASE_REF"
-BASE_COMMIT="$(git merge-base FETCH_HEAD HEAD)"
-
-echo "Searching for toolstate changes between $BASE_COMMIT and $(git rev-parse HEAD)"
-
-if git diff "$BASE_COMMIT" | grep --quiet "^index .* 160000"; then
-    # Submodules pseudo-files inside git have the 160000 permissions, so when
-    # those files are present in the diff a submodule was updated.
-    echo "Executing the job since submodules are updated"
-elif ! git diff --quiet "$BASE_COMMIT" -- src/tools/clippy src/tools/rustfmt; then
-    # There is not an easy blanket search for subtrees. For now, manually list
-    # the subtrees.
-    echo "Executing the job since clippy or rustfmt subtree was updated"
-elif ! (git diff --quiet "$BASE_COMMIT" -- \
-         src/test/rustdoc-gui \
-         src/librustdoc \
-         src/tools/rustdoc-gui); then
-    # There was a change in either rustdoc or in its GUI tests.
-    echo "Executing the job since rustdoc was updated"
-else
-    echo "Not executing this job since no submodules nor subtrees were updated"
-    ciCommandSetEnv SKIP_JOB 1
+if [[ -n "${CI_ONLY_WHEN_CHANNEL-}" ]]; then
+    if [[ "${CI_ONLY_WHEN_CHANNEL}" = "$(cat src/ci/channel)" ]]; then
+        echo "The channel is the expected one"
+    else
+        echo "Not executing this job as the channel is not the expected one"
+        ciCommandSetEnv SKIP_JOB 1
+        exit 0
+    fi
 fi
+
+
+echo "Executing the job since there is no skip rule preventing the execution"
+exit 0
diff --git a/src/doc/unstable-book/src/language-features/raw-dylib.md b/src/doc/unstable-book/src/language-features/raw-dylib.md
new file mode 100644
index 00000000000..23fc5b3052d
--- /dev/null
+++ b/src/doc/unstable-book/src/language-features/raw-dylib.md
@@ -0,0 +1,34 @@
+# `raw_dylib`
+
+The tracking issue for this feature is: [#58713]
+
+[#58713]: https://github.com/rust-lang/rust/issues/58713
+
+------------------------
+
+The `raw_dylib` feature allows you to link against the implementations of functions in an `extern`
+block without, on Windows, linking against an import library.
+
+```rust,ignore (partial-example)
+#![feature(raw_dylib)]
+
+#[link(name="library", kind="raw-dylib")]
+extern {
+    fn extern_function(x: i32);
+}
+
+fn main() {
+    unsafe {
+        extern_function(14);
+    }
+}
+```
+
+## Limitations
+
+Currently, this feature is only supported on `-windows-msvc` targets.  Non-Windows platforms don't have import
+libraries, and an incompatibility between LLVM and the BFD linker means that it is not currently supported on
+`-windows-gnu` targets.
+
+On the `i686-pc-windows-msvc` target, this feature supports only the `cdecl`, `stdcall`, `system`, and `fastcall`
+calling conventions.
diff --git a/src/librustdoc/clean/mod.rs b/src/librustdoc/clean/mod.rs
index 27c2f6cc87e..fd79292477c 100644
--- a/src/librustdoc/clean/mod.rs
+++ b/src/librustdoc/clean/mod.rs
@@ -1730,9 +1730,13 @@ impl Clean<Variant> for hir::VariantData<'_> {
     fn clean(&self, cx: &mut DocContext<'_>) -> Variant {
         match self {
             hir::VariantData::Struct(..) => Variant::Struct(self.clean(cx)),
-            hir::VariantData::Tuple(..) => {
-                Variant::Tuple(self.fields().iter().map(|x| x.ty.clean(cx)).collect())
-            }
+            // Important note here: `Variant::Tuple` is used on tuple structs which are not in an
+            // enum (so where converting from `ty::VariantDef`). In case we are in an enum, the kind
+            // is provided by the `Variant` wrapper directly, and since we need the fields' name
+            // (even for a tuple struct variant!), it's simpler to just store it as a
+            // `Variant::Struct` instead of a `Variant::Tuple` (otherwise it would force us to make
+            // a lot of changes when rendering them to generate the name as well).
+            hir::VariantData::Tuple(..) => Variant::Struct(self.clean(cx)),
             hir::VariantData::Unit(..) => Variant::CLike,
         }
     }
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs
index 2b7f7aa3691..c05ea81ac1f 100644
--- a/src/librustdoc/html/render/mod.rs
+++ b/src/librustdoc/html/render/mod.rs
@@ -2007,6 +2007,9 @@ fn sidebar_struct(cx: &Context<'_>, buf: &mut Buffer, it: &clean::Item, s: &clea
             }
 
             sidebar.push_str("</div>");
+        } else if let CtorKind::Fn = s.struct_type {
+            sidebar
+                .push_str("<h3 class=\"sidebar-title\"><a href=\"#fields\">Tuple Fields</a></h3>");
         }
     }
 
diff --git a/src/librustdoc/html/render/print_item.rs b/src/librustdoc/html/render/print_item.rs
index 83ad4f7097b..5c30d8bbd17 100644
--- a/src/librustdoc/html/render/print_item.rs
+++ b/src/librustdoc/html/render/print_item.rs
@@ -1037,8 +1037,9 @@ fn item_enum(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, e: &clean::Enum
                 write!(w, "<div class=\"sub-variant\" id=\"{id}\">", id = variant_id);
                 write!(
                     w,
-                    "<h3>Fields of <b>{name}</b></h3><div>",
-                    name = variant.name.as_ref().unwrap()
+                    "<h3>{extra}Fields of <b>{name}</b></h3><div>",
+                    extra = if s.struct_type == CtorKind::Fn { "Tuple " } else { "" },
+                    name = variant.name.as_ref().unwrap(),
                 );
                 for field in &s.fields {
                     use crate::clean::StructFieldItem;
@@ -1176,21 +1177,21 @@ fn item_struct(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, s: &clean::St
             _ => None,
         })
         .peekable();
-    if let CtorKind::Fictive = s.struct_type {
+    if let CtorKind::Fictive | CtorKind::Fn = s.struct_type {
         if fields.peek().is_some() {
             write!(
                 w,
                 "<h2 id=\"fields\" class=\"fields small-section-header\">\
-                       Fields{}<a href=\"#fields\" class=\"anchor\"></a></h2>",
+                     {}{}<a href=\"#fields\" class=\"anchor\"></a>\
+                 </h2>",
+                if let CtorKind::Fictive = s.struct_type { "Fields" } else { "Tuple Fields" },
                 document_non_exhaustive_header(it)
             );
             document_non_exhaustive(w, it);
-            for (field, ty) in fields {
-                let id = cx.derive_id(format!(
-                    "{}.{}",
-                    ItemType::StructField,
-                    field.name.as_ref().unwrap()
-                ));
+            for (index, (field, ty)) in fields.enumerate() {
+                let field_name =
+                    field.name.map_or_else(|| index.to_string(), |sym| (*sym.as_str()).to_string());
+                let id = cx.derive_id(format!("{}.{}", ItemType::StructField, field_name));
                 write!(
                     w,
                     "<span id=\"{id}\" class=\"{item_type} small-section-header\">\
@@ -1199,7 +1200,7 @@ fn item_struct(w: &mut Buffer, cx: &Context<'_>, it: &clean::Item, s: &clean::St
                      </span>",
                     item_type = ItemType::StructField,
                     id = id,
-                    name = field.name.as_ref().unwrap(),
+                    name = field_name,
                     ty = ty.print(cx)
                 );
                 document(w, cx, field, Some(it));
@@ -1507,7 +1508,10 @@ fn render_struct(
             if let Some(g) = g {
                 write!(w, "{}", print_where_clause(g, cx, 0, false),)
             }
-            w.write_str(";");
+            // We only want a ";" when we are displaying a tuple struct, not a variant tuple struct.
+            if structhead {
+                w.write_str(";");
+            }
         }
         CtorKind::Const => {
             // Needed for PhantomData.
diff --git a/src/test/rustdoc-ui/coverage/enums.stdout b/src/test/rustdoc-ui/coverage/enums.stdout
index 64c012c1f66..414d60c86d3 100644
--- a/src/test/rustdoc-ui/coverage/enums.stdout
+++ b/src/test/rustdoc-ui/coverage/enums.stdout
@@ -1,7 +1,7 @@
 +-------------------------------------+------------+------------+------------+------------+
 | File                                | Documented | Percentage |   Examples | Percentage |
 +-------------------------------------+------------+------------+------------+------------+
-| ...est/rustdoc-ui/coverage/enums.rs |          6 |      75.0% |          0 |       0.0% |
+| ...est/rustdoc-ui/coverage/enums.rs |          6 |      66.7% |          0 |       0.0% |
 +-------------------------------------+------------+------------+------------+------------+
-| Total                               |          6 |      75.0% |          0 |       0.0% |
+| Total                               |          6 |      66.7% |          0 |       0.0% |
 +-------------------------------------+------------+------------+------------+------------+
diff --git a/src/test/rustdoc-ui/coverage/traits.rs b/src/test/rustdoc-ui/coverage/traits.rs
index 2a108dac2a5..daa08ec2582 100644
--- a/src/test/rustdoc-ui/coverage/traits.rs
+++ b/src/test/rustdoc-ui/coverage/traits.rs
@@ -2,7 +2,7 @@
 // check-pass
 
 #![feature(trait_alias)]
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 /// look at this trait right here
 pub trait ThisTrait {
diff --git a/src/test/rustdoc-ui/error-in-impl-trait/trait-alias-closure.rs b/src/test/rustdoc-ui/error-in-impl-trait/trait-alias-closure.rs
index 3e7b4280234..31dd786cbbf 100644
--- a/src/test/rustdoc-ui/error-in-impl-trait/trait-alias-closure.rs
+++ b/src/test/rustdoc-ui/error-in-impl-trait/trait-alias-closure.rs
@@ -1,5 +1,5 @@
 // check-pass
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 pub trait ValidTrait {}
 type ImplTrait = impl ValidTrait;
diff --git a/src/test/rustdoc-ui/error-in-impl-trait/trait-alias.rs b/src/test/rustdoc-ui/error-in-impl-trait/trait-alias.rs
index 7ebf4d544de..c18a024af4b 100644
--- a/src/test/rustdoc-ui/error-in-impl-trait/trait-alias.rs
+++ b/src/test/rustdoc-ui/error-in-impl-trait/trait-alias.rs
@@ -1,5 +1,5 @@
 // check-pass
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 pub trait ValidTrait {}
 type ImplTrait = impl ValidTrait;
diff --git a/src/test/rustdoc/auxiliary/issue-73061.rs b/src/test/rustdoc/auxiliary/issue-73061.rs
index 9b4129e771f..e05a3bc6d91 100644
--- a/src/test/rustdoc/auxiliary/issue-73061.rs
+++ b/src/test/rustdoc/auxiliary/issue-73061.rs
@@ -1,6 +1,6 @@
 //edition:2018
 
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 pub trait Foo {
     type X: std::future::Future<Output = ()>;
diff --git a/src/test/rustdoc/impl-trait-alias.rs b/src/test/rustdoc/impl-trait-alias.rs
index bf73a833580..54c3f856ddb 100644
--- a/src/test/rustdoc/impl-trait-alias.rs
+++ b/src/test/rustdoc/impl-trait-alias.rs
@@ -1,4 +1,4 @@
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 trait MyTrait {}
 impl MyTrait for i32 {}
diff --git a/src/test/rustdoc/return-impl-trait.rs b/src/test/rustdoc/return-impl-trait.rs
index da4945aadf7..1ccf5ac4611 100644
--- a/src/test/rustdoc/return-impl-trait.rs
+++ b/src/test/rustdoc/return-impl-trait.rs
@@ -1,4 +1,4 @@
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 pub trait Backend {}
 
diff --git a/src/test/rustdoc/toggle-item-contents.rs b/src/test/rustdoc/toggle-item-contents.rs
index 8d2046591d0..ae871e79d7f 100644
--- a/src/test/rustdoc/toggle-item-contents.rs
+++ b/src/test/rustdoc/toggle-item-contents.rs
@@ -81,8 +81,8 @@ pub enum EnumStructVariant {
 }
 
 // @has 'toggle_item_contents/enum.LargeEnum.html'
-// @count - '//details[@class="rustdoc-toggle type-contents-toggle"]' 1
-// @has - '//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show 13 variants'
+// @count - '//*[@class="rust enum"]//details[@class="rustdoc-toggle type-contents-toggle"]' 1
+// @has - '//*[@class="rust enum"]//details[@class="rustdoc-toggle type-contents-toggle"]' 'Show 13 variants'
 pub enum LargeEnum {
     A, B, C, D, E, F(u8), G, H, I, J, K, L, M
 }
diff --git a/src/test/rustdoc/tuple-struct-fields-doc.rs b/src/test/rustdoc/tuple-struct-fields-doc.rs
new file mode 100644
index 00000000000..f3d8e39ea2d
--- /dev/null
+++ b/src/test/rustdoc/tuple-struct-fields-doc.rs
@@ -0,0 +1,36 @@
+#![crate_name = "foo"]
+
+// @has foo/struct.Foo.html
+// @has - '//h2[@id="fields"]' 'Tuple Fields'
+// @has - '//h3[@class="sidebar-title"]/a[@href="#fields"]' 'Tuple Fields'
+// @has - '//*[@id="structfield.0"]' '0: u32'
+// @has - '//*[@id="main"]/div[@class="docblock"]' 'hello'
+// @!has - '//*[@id="structfield.1"]'
+// @has - '//*[@id="structfield.2"]' '2: char'
+// @has - '//*[@id="structfield.3"]' '3: i8'
+// @has - '//*[@id="main"]/div[@class="docblock"]' 'not hello'
+pub struct Foo(
+    /// hello
+    pub u32,
+    char,
+    pub char,
+    /// not hello
+    pub i8,
+);
+
+// @has foo/enum.Bar.html
+// @has - '//pre[@class="rust enum"]' 'BarVariant(String),'
+// @matches - '//*[@id="variant.BarVariant.fields"]/h3' '^Tuple Fields of BarVariant$'
+// @has - '//*[@id="variant.BarVariant.field.0"]' '0: String'
+// @has - '//*[@id="variant.BarVariant.fields"]//*[@class="docblock"]' 'Hello docs'
+// @matches - '//*[@id="variant.FooVariant.fields"]/h3' '^Fields of FooVariant$'
+pub enum Bar {
+    BarVariant(
+        /// Hello docs
+        String
+    ),
+    FooVariant {
+       /// hello
+       x: u32,
+    },
+}
diff --git a/src/test/ui-fulldeps/plugin-args.stderr b/src/test/ui-fulldeps/plugin-args.stderr
index 2e255f185e2..177f33005c8 100644
--- a/src/test/ui-fulldeps/plugin-args.stderr
+++ b/src/test/ui-fulldeps/plugin-args.stderr
@@ -14,3 +14,4 @@ LL | #![plugin(empty_plugin(args))]
 
 error: aborting due to previous error; 1 warning emitted
 
+For more information about this error, try `rustc --explain E0498`.
diff --git a/src/test/ui/associated-type-bounds/duplicate.full_tait.stderr b/src/test/ui/associated-type-bounds/duplicate.full_tait.stderr
deleted file mode 100644
index bffa5150fe1..00000000000
--- a/src/test/ui/associated-type-bounds/duplicate.full_tait.stderr
+++ /dev/null
@@ -1,492 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/duplicate.rs:4:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:10:36
-   |
-LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
-   |                        ----------  ^^^^^^^^^^ re-bound here
-   |                        |
-   |                        `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:12:36
-   |
-LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
-   |                        ----------  ^^^^^^^^^^ re-bound here
-   |                        |
-   |                        `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:14:39
-   |
-LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
-   |                        -------------  ^^^^^^^^^^^^^ re-bound here
-   |                        |
-   |                        `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:16:45
-   |
-LL | struct SW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
-   |                                 ----------  ^^^^^^^^^^ re-bound here
-   |                                 |
-   |                                 `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:18:45
-   |
-LL | struct SW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
-   |                                 ----------  ^^^^^^^^^^ re-bound here
-   |                                 |
-   |                                 `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:20:48
-   |
-LL | struct SW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
-   |                                 -------------  ^^^^^^^^^^^^^ re-bound here
-   |                                 |
-   |                                 `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:23:34
-   |
-LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> { V(T) }
-   |                      ----------  ^^^^^^^^^^ re-bound here
-   |                      |
-   |                      `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:25:34
-   |
-LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> { V(T) }
-   |                      ----------  ^^^^^^^^^^ re-bound here
-   |                      |
-   |                      `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:27:37
-   |
-LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> { V(T) }
-   |                      -------------  ^^^^^^^^^^^^^ re-bound here
-   |                      |
-   |                      `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:29:43
-   |
-LL | enum EW1<T> where T: Iterator<Item: Copy, Item: Send> { V(T) }
-   |                               ----------  ^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:31:43
-   |
-LL | enum EW2<T> where T: Iterator<Item: Copy, Item: Copy> { V(T) }
-   |                               ----------  ^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:33:46
-   |
-LL | enum EW3<T> where T: Iterator<Item: 'static, Item: 'static> { V(T) }
-   |                               -------------  ^^^^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:36:35
-   |
-LL | union UI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
-   |                       ----------  ^^^^^^^^^^ re-bound here
-   |                       |
-   |                       `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:38:35
-   |
-LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
-   |                       ----------  ^^^^^^^^^^ re-bound here
-   |                       |
-   |                       `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:40:38
-   |
-LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
-   |                       -------------  ^^^^^^^^^^^^^ re-bound here
-   |                       |
-   |                       `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:42:44
-   |
-LL | union UW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
-   |                                ----------  ^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:44:44
-   |
-LL | union UW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
-   |                                ----------  ^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:46:47
-   |
-LL | union UW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
-   |                                -------------  ^^^^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:49:32
-   |
-LL | fn FI1<T: Iterator<Item: Copy, Item: Send>>() {}
-   |                    ----------  ^^^^^^^^^^ re-bound here
-   |                    |
-   |                    `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:51:32
-   |
-LL | fn FI2<T: Iterator<Item: Copy, Item: Copy>>() {}
-   |                    ----------  ^^^^^^^^^^ re-bound here
-   |                    |
-   |                    `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:53:35
-   |
-LL | fn FI3<T: Iterator<Item: 'static, Item: 'static>>() {}
-   |                    -------------  ^^^^^^^^^^^^^ re-bound here
-   |                    |
-   |                    `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:55:43
-   |
-LL | fn FW1<T>() where T: Iterator<Item: Copy, Item: Send> {}
-   |                               ----------  ^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:57:43
-   |
-LL | fn FW2<T>() where T: Iterator<Item: Copy, Item: Copy> {}
-   |                               ----------  ^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:59:46
-   |
-LL | fn FW3<T>() where T: Iterator<Item: 'static, Item: 'static> {}
-   |                               -------------  ^^^^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:65:40
-   |
-LL | fn FAPIT1(_: impl Iterator<Item: Copy, Item: Send>) {}
-   |                            ----------  ^^^^^^^^^^ re-bound here
-   |                            |
-   |                            `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:67:40
-   |
-LL | fn FAPIT2(_: impl Iterator<Item: Copy, Item: Copy>) {}
-   |                            ----------  ^^^^^^^^^^ re-bound here
-   |                            |
-   |                            `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:69:43
-   |
-LL | fn FAPIT3(_: impl Iterator<Item: 'static, Item: 'static>) {}
-   |                            -------------  ^^^^^^^^^^^^^ re-bound here
-   |                            |
-   |                            `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:72:35
-   |
-LL | type TAI1<T: Iterator<Item: Copy, Item: Send>> = T;
-   |                       ----------  ^^^^^^^^^^ re-bound here
-   |                       |
-   |                       `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:74:35
-   |
-LL | type TAI2<T: Iterator<Item: Copy, Item: Copy>> = T;
-   |                       ----------  ^^^^^^^^^^ re-bound here
-   |                       |
-   |                       `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:76:38
-   |
-LL | type TAI3<T: Iterator<Item: 'static, Item: 'static>> = T;
-   |                       -------------  ^^^^^^^^^^^^^ re-bound here
-   |                       |
-   |                       `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:78:44
-   |
-LL | type TAW1<T> where T: Iterator<Item: Copy, Item: Send> = T;
-   |                                ----------  ^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:80:44
-   |
-LL | type TAW2<T> where T: Iterator<Item: Copy, Item: Copy> = T;
-   |                                ----------  ^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:82:47
-   |
-LL | type TAW3<T> where T: Iterator<Item: 'static, Item: 'static> = T;
-   |                                -------------  ^^^^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:85:36
-   |
-LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
-   |                        ----------  ^^^^^^^^^^ re-bound here
-   |                        |
-   |                        `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:87:36
-   |
-LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
-   |                        ----------  ^^^^^^^^^^ re-bound here
-   |                        |
-   |                        `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:89:39
-   |
-LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
-   |                        -------------  ^^^^^^^^^^^^^ re-bound here
-   |                        |
-   |                        `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:91:40
-   |
-LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>;
-   |                            ----------  ^^^^^^^^^^ re-bound here
-   |                            |
-   |                            `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:93:40
-   |
-LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>;
-   |                            ----------  ^^^^^^^^^^ re-bound here
-   |                            |
-   |                            `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:95:43
-   |
-LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>;
-   |                            -------------  ^^^^^^^^^^^^^ re-bound here
-   |                            |
-   |                            `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:98:36
-   |
-LL | trait TRI1<T: Iterator<Item: Copy, Item: Send>> {}
-   |                        ----------  ^^^^^^^^^^ re-bound here
-   |                        |
-   |                        `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:100:36
-   |
-LL | trait TRI2<T: Iterator<Item: Copy, Item: Copy>> {}
-   |                        ----------  ^^^^^^^^^^ re-bound here
-   |                        |
-   |                        `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:102:39
-   |
-LL | trait TRI3<T: Iterator<Item: 'static, Item: 'static>> {}
-   |                        -------------  ^^^^^^^^^^^^^ re-bound here
-   |                        |
-   |                        `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:104:34
-   |
-LL | trait TRS1: Iterator<Item: Copy, Item: Send> {}
-   |                      ----------  ^^^^^^^^^^ re-bound here
-   |                      |
-   |                      `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:106:34
-   |
-LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {}
-   |                      ----------  ^^^^^^^^^^ re-bound here
-   |                      |
-   |                      `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:108:37
-   |
-LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {}
-   |                      -------------  ^^^^^^^^^^^^^ re-bound here
-   |                      |
-   |                      `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:110:45
-   |
-LL | trait TRW1<T> where T: Iterator<Item: Copy, Item: Send> {}
-   |                                 ----------  ^^^^^^^^^^ re-bound here
-   |                                 |
-   |                                 `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:112:45
-   |
-LL | trait TRW2<T> where T: Iterator<Item: Copy, Item: Copy> {}
-   |                                 ----------  ^^^^^^^^^^ re-bound here
-   |                                 |
-   |                                 `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:114:48
-   |
-LL | trait TRW3<T> where T: Iterator<Item: 'static, Item: 'static> {}
-   |                                 -------------  ^^^^^^^^^^^^^ re-bound here
-   |                                 |
-   |                                 `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:116:46
-   |
-LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
-   |                                  ----------  ^^^^^^^^^^ re-bound here
-   |                                  |
-   |                                  `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:116:46
-   |
-LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
-   |                                  ----------  ^^^^^^^^^^ re-bound here
-   |                                  |
-   |                                  `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:119:46
-   |
-LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
-   |                                  ----------  ^^^^^^^^^^ re-bound here
-   |                                  |
-   |                                  `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:119:46
-   |
-LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
-   |                                  ----------  ^^^^^^^^^^ re-bound here
-   |                                  |
-   |                                  `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:122:49
-   |
-LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
-   |                                  -------------  ^^^^^^^^^^^^^ re-bound here
-   |                                  |
-   |                                  `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:122:49
-   |
-LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
-   |                                  -------------  ^^^^^^^^^^^^^ re-bound here
-   |                                  |
-   |                                  `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:132:40
-   |
-LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>;
-   |                            ----------  ^^^^^^^^^^ re-bound here
-   |                            |
-   |                            `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:134:44
-   |
-LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>;
-   |                                ----------  ^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:136:43
-   |
-LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
-   |                            -------------  ^^^^^^^^^^^^^ re-bound here
-   |                            |
-   |                            `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:125:43
-   |
-LL | trait TRA1 { type A: Iterator<Item: Copy, Item: Send>; }
-   |                               ----------  ^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:127:43
-   |
-LL | trait TRA2 { type A: Iterator<Item: Copy, Item: Copy>; }
-   |                               ----------  ^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
-
-error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:129:46
-   |
-LL | trait TRA3 { type A: Iterator<Item: 'static, Item: 'static>; }
-   |                               -------------  ^^^^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
-
-error: aborting due to 60 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0719`.
diff --git a/src/test/ui/associated-type-bounds/duplicate.rs b/src/test/ui/associated-type-bounds/duplicate.rs
index 0d7804ef1a7..e1dc6f8f4b6 100644
--- a/src/test/ui/associated-type-bounds/duplicate.rs
+++ b/src/test/ui/associated-type-bounds/duplicate.rs
@@ -1,50 +1,110 @@
 #![feature(associated_type_bounds)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 #![feature(untagged_unions)]
 
 use std::iter;
 
-struct SI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-struct SI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-struct SI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-struct SW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-struct SW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-struct SW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+struct SI1<T: Iterator<Item: Copy, Item: Send>> {
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+    f: T,
+}
+struct SI2<T: Iterator<Item: Copy, Item: Copy>> {
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+    f: T,
+}
+struct SI3<T: Iterator<Item: 'static, Item: 'static>> {
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+    f: T,
+}
+struct SW1<T>
+where
+    T: Iterator<Item: Copy, Item: Send>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+    f: T,
+}
+struct SW2<T>
+where
+    T: Iterator<Item: Copy, Item: Copy>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+    f: T,
+}
+struct SW3<T>
+where
+    T: Iterator<Item: 'static, Item: 'static>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+    f: T,
+}
 
-enum EI1<T: Iterator<Item: Copy, Item: Send>> { V(T) }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-enum EI2<T: Iterator<Item: Copy, Item: Copy>> { V(T) }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-enum EI3<T: Iterator<Item: 'static, Item: 'static>> { V(T) }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-enum EW1<T> where T: Iterator<Item: Copy, Item: Send> { V(T) }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-enum EW2<T> where T: Iterator<Item: Copy, Item: Copy> { V(T) }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-enum EW3<T> where T: Iterator<Item: 'static, Item: 'static> { V(T) }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+enum EI1<T: Iterator<Item: Copy, Item: Send>> {
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+    V(T),
+}
+enum EI2<T: Iterator<Item: Copy, Item: Copy>> {
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+    V(T),
+}
+enum EI3<T: Iterator<Item: 'static, Item: 'static>> {
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+    V(T),
+}
+enum EW1<T>
+where
+    T: Iterator<Item: Copy, Item: Send>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+    V(T),
+}
+enum EW2<T>
+where
+    T: Iterator<Item: Copy, Item: Copy>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+    V(T),
+}
+enum EW3<T>
+where
+    T: Iterator<Item: 'static, Item: 'static>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+    V(T),
+}
 
-union UI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-union UI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-union UI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-union UW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-union UW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-union UW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+union UI1<T: Iterator<Item: Copy, Item: Send>> {
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+    f: T,
+}
+union UI2<T: Iterator<Item: Copy, Item: Copy>> {
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+    f: T,
+}
+union UI3<T: Iterator<Item: 'static, Item: 'static>> {
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+    f: T,
+}
+union UW1<T>
+where
+    T: Iterator<Item: Copy, Item: Send>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+    f: T,
+}
+union UW2<T>
+where
+    T: Iterator<Item: Copy, Item: Copy>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+    f: T,
+}
+union UW3<T>
+where
+    T: Iterator<Item: 'static, Item: 'static>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+    f: T,
+}
 
 fn FI1<T: Iterator<Item: Copy, Item: Send>>() {}
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
@@ -52,16 +112,34 @@ fn FI2<T: Iterator<Item: Copy, Item: Copy>>() {}
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
 fn FI3<T: Iterator<Item: 'static, Item: 'static>>() {}
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-fn FW1<T>() where T: Iterator<Item: Copy, Item: Send> {}
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-fn FW2<T>() where T: Iterator<Item: Copy, Item: Copy> {}
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-fn FW3<T>() where T: Iterator<Item: 'static, Item: 'static> {}
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+fn FW1<T>()
+where
+    T: Iterator<Item: Copy, Item: Send>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+}
+fn FW2<T>()
+where
+    T: Iterator<Item: Copy, Item: Copy>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+}
+fn FW3<T>()
+where
+    T: Iterator<Item: 'static, Item: 'static>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+}
 
-fn FRPIT1() -> impl Iterator<Item: Copy, Item: Send> { iter::empty() }
-fn FRPIT2() -> impl Iterator<Item: Copy, Item: Copy> { iter::empty() }
-fn FRPIT3() -> impl Iterator<Item: 'static, Item: 'static> { iter::empty() }
+fn FRPIT1() -> impl Iterator<Item: Copy, Item: Send> {
+    iter::empty()
+}
+fn FRPIT2() -> impl Iterator<Item: Copy, Item: Copy> {
+    iter::empty()
+}
+fn FRPIT3() -> impl Iterator<Item: 'static, Item: 'static> {
+    iter::empty()
+}
 fn FAPIT1(_: impl Iterator<Item: Copy, Item: Send>) {}
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
 fn FAPIT2(_: impl Iterator<Item: Copy, Item: Copy>) {}
@@ -75,12 +153,21 @@ type TAI2<T: Iterator<Item: Copy, Item: Copy>> = T;
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
 type TAI3<T: Iterator<Item: 'static, Item: 'static>> = T;
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-type TAW1<T> where T: Iterator<Item: Copy, Item: Send> = T;
+type TAW1<T>
+where
+    T: Iterator<Item: Copy, Item: Send>,
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-type TAW2<T> where T: Iterator<Item: Copy, Item: Copy> = T;
+= T;
+type TAW2<T>
+where
+    T: Iterator<Item: Copy, Item: Copy>,
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-type TAW3<T> where T: Iterator<Item: 'static, Item: 'static> = T;
+= T;
+type TAW3<T>
+where
+    T: Iterator<Item: 'static, Item: 'static>,
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+= T;
 
 type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
@@ -107,27 +194,57 @@ trait TRS2: Iterator<Item: Copy, Item: Copy> {}
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
 trait TRS3: Iterator<Item: 'static, Item: 'static> {}
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-trait TRW1<T> where T: Iterator<Item: Copy, Item: Send> {}
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-trait TRW2<T> where T: Iterator<Item: Copy, Item: Copy> {}
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-trait TRW3<T> where T: Iterator<Item: 'static, Item: 'static> {}
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-//~| ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-//~| ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-//~| ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-trait TRA1 { type A: Iterator<Item: Copy, Item: Send>; }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-trait TRA2 { type A: Iterator<Item: Copy, Item: Copy>; }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
-trait TRA3 { type A: Iterator<Item: 'static, Item: 'static>; }
-//~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+trait TRW1<T>
+where
+    T: Iterator<Item: Copy, Item: Send>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+}
+trait TRW2<T>
+where
+    T: Iterator<Item: Copy, Item: Copy>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+}
+trait TRW3<T>
+where
+    T: Iterator<Item: 'static, Item: 'static>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+}
+trait TRSW1
+where
+    Self: Iterator<Item: Copy, Item: Send>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+    //~| ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+}
+trait TRSW2
+where
+    Self: Iterator<Item: Copy, Item: Copy>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+    //~| ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+}
+trait TRSW3
+where
+    Self: Iterator<Item: 'static, Item: 'static>,
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+    //~| ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+{
+}
+trait TRA1 {
+    type A: Iterator<Item: Copy, Item: Send>;
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+}
+trait TRA2 {
+    type A: Iterator<Item: Copy, Item: Copy>;
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+}
+trait TRA3 {
+    type A: Iterator<Item: 'static, Item: 'static>;
+    //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
+}
 
 type TADyn1 = dyn Iterator<Item: Copy, Item: Send>;
 //~^ ERROR the value of the associated type `Item` (from trait `Iterator`) is already specified [E0719]
diff --git a/src/test/ui/associated-type-bounds/duplicate.min_tait.stderr b/src/test/ui/associated-type-bounds/duplicate.stderr
index 06bfac588de..e4f4836f71a 100644
--- a/src/test/ui/associated-type-bounds/duplicate.min_tait.stderr
+++ b/src/test/ui/associated-type-bounds/duplicate.stderr
@@ -1,149 +1,149 @@
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:10:36
+  --> $DIR/duplicate.rs:7:36
    |
-LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
+LL | struct SI1<T: Iterator<Item: Copy, Item: Send>> {
    |                        ----------  ^^^^^^^^^^ re-bound here
    |                        |
    |                        `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:12:36
+  --> $DIR/duplicate.rs:11:36
    |
-LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
+LL | struct SI2<T: Iterator<Item: Copy, Item: Copy>> {
    |                        ----------  ^^^^^^^^^^ re-bound here
    |                        |
    |                        `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:14:39
+  --> $DIR/duplicate.rs:15:39
    |
-LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
+LL | struct SI3<T: Iterator<Item: 'static, Item: 'static>> {
    |                        -------------  ^^^^^^^^^^^^^ re-bound here
    |                        |
    |                        `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:16:45
+  --> $DIR/duplicate.rs:21:29
    |
-LL | struct SW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
-   |                                 ----------  ^^^^^^^^^^ re-bound here
-   |                                 |
-   |                                 `Item` bound here first
+LL |     T: Iterator<Item: Copy, Item: Send>,
+   |                 ----------  ^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:18:45
+  --> $DIR/duplicate.rs:28:29
    |
-LL | struct SW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
-   |                                 ----------  ^^^^^^^^^^ re-bound here
-   |                                 |
-   |                                 `Item` bound here first
+LL |     T: Iterator<Item: Copy, Item: Copy>,
+   |                 ----------  ^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:20:48
+  --> $DIR/duplicate.rs:35:32
    |
-LL | struct SW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
-   |                                 -------------  ^^^^^^^^^^^^^ re-bound here
-   |                                 |
-   |                                 `Item` bound here first
+LL |     T: Iterator<Item: 'static, Item: 'static>,
+   |                 -------------  ^^^^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:23:34
+  --> $DIR/duplicate.rs:41:34
    |
-LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> { V(T) }
+LL | enum EI1<T: Iterator<Item: Copy, Item: Send>> {
    |                      ----------  ^^^^^^^^^^ re-bound here
    |                      |
    |                      `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:25:34
+  --> $DIR/duplicate.rs:45:34
    |
-LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> { V(T) }
+LL | enum EI2<T: Iterator<Item: Copy, Item: Copy>> {
    |                      ----------  ^^^^^^^^^^ re-bound here
    |                      |
    |                      `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:27:37
+  --> $DIR/duplicate.rs:49:37
    |
-LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> { V(T) }
+LL | enum EI3<T: Iterator<Item: 'static, Item: 'static>> {
    |                      -------------  ^^^^^^^^^^^^^ re-bound here
    |                      |
    |                      `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:29:43
+  --> $DIR/duplicate.rs:55:29
    |
-LL | enum EW1<T> where T: Iterator<Item: Copy, Item: Send> { V(T) }
-   |                               ----------  ^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
+LL |     T: Iterator<Item: Copy, Item: Send>,
+   |                 ----------  ^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:31:43
+  --> $DIR/duplicate.rs:62:29
    |
-LL | enum EW2<T> where T: Iterator<Item: Copy, Item: Copy> { V(T) }
-   |                               ----------  ^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
+LL |     T: Iterator<Item: Copy, Item: Copy>,
+   |                 ----------  ^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:33:46
+  --> $DIR/duplicate.rs:69:32
    |
-LL | enum EW3<T> where T: Iterator<Item: 'static, Item: 'static> { V(T) }
-   |                               -------------  ^^^^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
+LL |     T: Iterator<Item: 'static, Item: 'static>,
+   |                 -------------  ^^^^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:36:35
+  --> $DIR/duplicate.rs:75:35
    |
-LL | union UI1<T: Iterator<Item: Copy, Item: Send>> { f: T }
+LL | union UI1<T: Iterator<Item: Copy, Item: Send>> {
    |                       ----------  ^^^^^^^^^^ re-bound here
    |                       |
    |                       `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:38:35
+  --> $DIR/duplicate.rs:79:35
    |
-LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> { f: T }
+LL | union UI2<T: Iterator<Item: Copy, Item: Copy>> {
    |                       ----------  ^^^^^^^^^^ re-bound here
    |                       |
    |                       `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:40:38
+  --> $DIR/duplicate.rs:83:38
    |
-LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> { f: T }
+LL | union UI3<T: Iterator<Item: 'static, Item: 'static>> {
    |                       -------------  ^^^^^^^^^^^^^ re-bound here
    |                       |
    |                       `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:42:44
+  --> $DIR/duplicate.rs:89:29
    |
-LL | union UW1<T> where T: Iterator<Item: Copy, Item: Send> { f: T }
-   |                                ----------  ^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
+LL |     T: Iterator<Item: Copy, Item: Send>,
+   |                 ----------  ^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:44:44
+  --> $DIR/duplicate.rs:96:29
    |
-LL | union UW2<T> where T: Iterator<Item: Copy, Item: Copy> { f: T }
-   |                                ----------  ^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
+LL |     T: Iterator<Item: Copy, Item: Copy>,
+   |                 ----------  ^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:46:47
+  --> $DIR/duplicate.rs:103:32
    |
-LL | union UW3<T> where T: Iterator<Item: 'static, Item: 'static> { f: T }
-   |                                -------------  ^^^^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
+LL |     T: Iterator<Item: 'static, Item: 'static>,
+   |                 -------------  ^^^^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:49:32
+  --> $DIR/duplicate.rs:109:32
    |
 LL | fn FI1<T: Iterator<Item: Copy, Item: Send>>() {}
    |                    ----------  ^^^^^^^^^^ re-bound here
@@ -151,7 +151,7 @@ LL | fn FI1<T: Iterator<Item: Copy, Item: Send>>() {}
    |                    `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:51:32
+  --> $DIR/duplicate.rs:111:32
    |
 LL | fn FI2<T: Iterator<Item: Copy, Item: Copy>>() {}
    |                    ----------  ^^^^^^^^^^ re-bound here
@@ -159,7 +159,7 @@ LL | fn FI2<T: Iterator<Item: Copy, Item: Copy>>() {}
    |                    `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:53:35
+  --> $DIR/duplicate.rs:113:35
    |
 LL | fn FI3<T: Iterator<Item: 'static, Item: 'static>>() {}
    |                    -------------  ^^^^^^^^^^^^^ re-bound here
@@ -167,31 +167,31 @@ LL | fn FI3<T: Iterator<Item: 'static, Item: 'static>>() {}
    |                    `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:55:43
+  --> $DIR/duplicate.rs:117:29
    |
-LL | fn FW1<T>() where T: Iterator<Item: Copy, Item: Send> {}
-   |                               ----------  ^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
+LL |     T: Iterator<Item: Copy, Item: Send>,
+   |                 ----------  ^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:57:43
+  --> $DIR/duplicate.rs:123:29
    |
-LL | fn FW2<T>() where T: Iterator<Item: Copy, Item: Copy> {}
-   |                               ----------  ^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
+LL |     T: Iterator<Item: Copy, Item: Copy>,
+   |                 ----------  ^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:59:46
+  --> $DIR/duplicate.rs:129:32
    |
-LL | fn FW3<T>() where T: Iterator<Item: 'static, Item: 'static> {}
-   |                               -------------  ^^^^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
+LL |     T: Iterator<Item: 'static, Item: 'static>,
+   |                 -------------  ^^^^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:65:40
+  --> $DIR/duplicate.rs:143:40
    |
 LL | fn FAPIT1(_: impl Iterator<Item: Copy, Item: Send>) {}
    |                            ----------  ^^^^^^^^^^ re-bound here
@@ -199,7 +199,7 @@ LL | fn FAPIT1(_: impl Iterator<Item: Copy, Item: Send>) {}
    |                            `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:67:40
+  --> $DIR/duplicate.rs:145:40
    |
 LL | fn FAPIT2(_: impl Iterator<Item: Copy, Item: Copy>) {}
    |                            ----------  ^^^^^^^^^^ re-bound here
@@ -207,7 +207,7 @@ LL | fn FAPIT2(_: impl Iterator<Item: Copy, Item: Copy>) {}
    |                            `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:69:43
+  --> $DIR/duplicate.rs:147:43
    |
 LL | fn FAPIT3(_: impl Iterator<Item: 'static, Item: 'static>) {}
    |                            -------------  ^^^^^^^^^^^^^ re-bound here
@@ -215,7 +215,7 @@ LL | fn FAPIT3(_: impl Iterator<Item: 'static, Item: 'static>) {}
    |                            `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:72:35
+  --> $DIR/duplicate.rs:150:35
    |
 LL | type TAI1<T: Iterator<Item: Copy, Item: Send>> = T;
    |                       ----------  ^^^^^^^^^^ re-bound here
@@ -223,7 +223,7 @@ LL | type TAI1<T: Iterator<Item: Copy, Item: Send>> = T;
    |                       `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:74:35
+  --> $DIR/duplicate.rs:152:35
    |
 LL | type TAI2<T: Iterator<Item: Copy, Item: Copy>> = T;
    |                       ----------  ^^^^^^^^^^ re-bound here
@@ -231,7 +231,7 @@ LL | type TAI2<T: Iterator<Item: Copy, Item: Copy>> = T;
    |                       `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:76:38
+  --> $DIR/duplicate.rs:154:38
    |
 LL | type TAI3<T: Iterator<Item: 'static, Item: 'static>> = T;
    |                       -------------  ^^^^^^^^^^^^^ re-bound here
@@ -239,31 +239,31 @@ LL | type TAI3<T: Iterator<Item: 'static, Item: 'static>> = T;
    |                       `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:78:44
+  --> $DIR/duplicate.rs:158:29
    |
-LL | type TAW1<T> where T: Iterator<Item: Copy, Item: Send> = T;
-   |                                ----------  ^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
+LL |     T: Iterator<Item: Copy, Item: Send>,
+   |                 ----------  ^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:80:44
+  --> $DIR/duplicate.rs:163:29
    |
-LL | type TAW2<T> where T: Iterator<Item: Copy, Item: Copy> = T;
-   |                                ----------  ^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
+LL |     T: Iterator<Item: Copy, Item: Copy>,
+   |                 ----------  ^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:82:47
+  --> $DIR/duplicate.rs:168:32
    |
-LL | type TAW3<T> where T: Iterator<Item: 'static, Item: 'static> = T;
-   |                                -------------  ^^^^^^^^^^^^^ re-bound here
-   |                                |
-   |                                `Item` bound here first
+LL |     T: Iterator<Item: 'static, Item: 'static>,
+   |                 -------------  ^^^^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:85:36
+  --> $DIR/duplicate.rs:172:36
    |
 LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
    |                        ----------  ^^^^^^^^^^ re-bound here
@@ -271,7 +271,7 @@ LL | type ETAI1<T: Iterator<Item: Copy, Item: Send>> = impl Copy;
    |                        `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:87:36
+  --> $DIR/duplicate.rs:174:36
    |
 LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
    |                        ----------  ^^^^^^^^^^ re-bound here
@@ -279,7 +279,7 @@ LL | type ETAI2<T: Iterator<Item: Copy, Item: Copy>> = impl Copy;
    |                        `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:89:39
+  --> $DIR/duplicate.rs:176:39
    |
 LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
    |                        -------------  ^^^^^^^^^^^^^ re-bound here
@@ -287,7 +287,7 @@ LL | type ETAI3<T: Iterator<Item: 'static, Item: 'static>> = impl Copy;
    |                        `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:91:40
+  --> $DIR/duplicate.rs:178:40
    |
 LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>;
    |                            ----------  ^^^^^^^^^^ re-bound here
@@ -295,7 +295,7 @@ LL | type ETAI4 = impl Iterator<Item: Copy, Item: Send>;
    |                            `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:93:40
+  --> $DIR/duplicate.rs:180:40
    |
 LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>;
    |                            ----------  ^^^^^^^^^^ re-bound here
@@ -303,7 +303,7 @@ LL | type ETAI5 = impl Iterator<Item: Copy, Item: Copy>;
    |                            `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:95:43
+  --> $DIR/duplicate.rs:182:43
    |
 LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>;
    |                            -------------  ^^^^^^^^^^^^^ re-bound here
@@ -311,7 +311,7 @@ LL | type ETAI6 = impl Iterator<Item: 'static, Item: 'static>;
    |                            `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:98:36
+  --> $DIR/duplicate.rs:185:36
    |
 LL | trait TRI1<T: Iterator<Item: Copy, Item: Send>> {}
    |                        ----------  ^^^^^^^^^^ re-bound here
@@ -319,7 +319,7 @@ LL | trait TRI1<T: Iterator<Item: Copy, Item: Send>> {}
    |                        `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:100:36
+  --> $DIR/duplicate.rs:187:36
    |
 LL | trait TRI2<T: Iterator<Item: Copy, Item: Copy>> {}
    |                        ----------  ^^^^^^^^^^ re-bound here
@@ -327,7 +327,7 @@ LL | trait TRI2<T: Iterator<Item: Copy, Item: Copy>> {}
    |                        `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:102:39
+  --> $DIR/duplicate.rs:189:39
    |
 LL | trait TRI3<T: Iterator<Item: 'static, Item: 'static>> {}
    |                        -------------  ^^^^^^^^^^^^^ re-bound here
@@ -335,7 +335,7 @@ LL | trait TRI3<T: Iterator<Item: 'static, Item: 'static>> {}
    |                        `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:104:34
+  --> $DIR/duplicate.rs:191:34
    |
 LL | trait TRS1: Iterator<Item: Copy, Item: Send> {}
    |                      ----------  ^^^^^^^^^^ re-bound here
@@ -343,7 +343,7 @@ LL | trait TRS1: Iterator<Item: Copy, Item: Send> {}
    |                      `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:106:34
+  --> $DIR/duplicate.rs:193:34
    |
 LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {}
    |                      ----------  ^^^^^^^^^^ re-bound here
@@ -351,7 +351,7 @@ LL | trait TRS2: Iterator<Item: Copy, Item: Copy> {}
    |                      `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:108:37
+  --> $DIR/duplicate.rs:195:37
    |
 LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {}
    |                      -------------  ^^^^^^^^^^^^^ re-bound here
@@ -359,79 +359,79 @@ LL | trait TRS3: Iterator<Item: 'static, Item: 'static> {}
    |                      `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:110:45
+  --> $DIR/duplicate.rs:199:29
    |
-LL | trait TRW1<T> where T: Iterator<Item: Copy, Item: Send> {}
-   |                                 ----------  ^^^^^^^^^^ re-bound here
-   |                                 |
-   |                                 `Item` bound here first
+LL |     T: Iterator<Item: Copy, Item: Send>,
+   |                 ----------  ^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:112:45
+  --> $DIR/duplicate.rs:205:29
    |
-LL | trait TRW2<T> where T: Iterator<Item: Copy, Item: Copy> {}
-   |                                 ----------  ^^^^^^^^^^ re-bound here
-   |                                 |
-   |                                 `Item` bound here first
+LL |     T: Iterator<Item: Copy, Item: Copy>,
+   |                 ----------  ^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:114:48
+  --> $DIR/duplicate.rs:211:32
    |
-LL | trait TRW3<T> where T: Iterator<Item: 'static, Item: 'static> {}
-   |                                 -------------  ^^^^^^^^^^^^^ re-bound here
-   |                                 |
-   |                                 `Item` bound here first
+LL |     T: Iterator<Item: 'static, Item: 'static>,
+   |                 -------------  ^^^^^^^^^^^^^ re-bound here
+   |                 |
+   |                 `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:116:46
+  --> $DIR/duplicate.rs:217:32
    |
-LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
-   |                                  ----------  ^^^^^^^^^^ re-bound here
-   |                                  |
-   |                                  `Item` bound here first
+LL |     Self: Iterator<Item: Copy, Item: Send>,
+   |                    ----------  ^^^^^^^^^^ re-bound here
+   |                    |
+   |                    `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:116:46
+  --> $DIR/duplicate.rs:217:32
    |
-LL | trait TRSW1 where Self: Iterator<Item: Copy, Item: Send> {}
-   |                                  ----------  ^^^^^^^^^^ re-bound here
-   |                                  |
-   |                                  `Item` bound here first
+LL |     Self: Iterator<Item: Copy, Item: Send>,
+   |                    ----------  ^^^^^^^^^^ re-bound here
+   |                    |
+   |                    `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:119:46
+  --> $DIR/duplicate.rs:224:32
    |
-LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
-   |                                  ----------  ^^^^^^^^^^ re-bound here
-   |                                  |
-   |                                  `Item` bound here first
+LL |     Self: Iterator<Item: Copy, Item: Copy>,
+   |                    ----------  ^^^^^^^^^^ re-bound here
+   |                    |
+   |                    `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:119:46
+  --> $DIR/duplicate.rs:224:32
    |
-LL | trait TRSW2 where Self: Iterator<Item: Copy, Item: Copy> {}
-   |                                  ----------  ^^^^^^^^^^ re-bound here
-   |                                  |
-   |                                  `Item` bound here first
+LL |     Self: Iterator<Item: Copy, Item: Copy>,
+   |                    ----------  ^^^^^^^^^^ re-bound here
+   |                    |
+   |                    `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:122:49
+  --> $DIR/duplicate.rs:231:35
    |
-LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
-   |                                  -------------  ^^^^^^^^^^^^^ re-bound here
-   |                                  |
-   |                                  `Item` bound here first
+LL |     Self: Iterator<Item: 'static, Item: 'static>,
+   |                    -------------  ^^^^^^^^^^^^^ re-bound here
+   |                    |
+   |                    `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:122:49
+  --> $DIR/duplicate.rs:231:35
    |
-LL | trait TRSW3 where Self: Iterator<Item: 'static, Item: 'static> {}
-   |                                  -------------  ^^^^^^^^^^^^^ re-bound here
-   |                                  |
-   |                                  `Item` bound here first
+LL |     Self: Iterator<Item: 'static, Item: 'static>,
+   |                    -------------  ^^^^^^^^^^^^^ re-bound here
+   |                    |
+   |                    `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:132:40
+  --> $DIR/duplicate.rs:249:40
    |
 LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>;
    |                            ----------  ^^^^^^^^^^ re-bound here
@@ -439,7 +439,7 @@ LL | type TADyn1 = dyn Iterator<Item: Copy, Item: Send>;
    |                            `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:134:44
+  --> $DIR/duplicate.rs:251:44
    |
 LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>;
    |                                ----------  ^^^^^^^^^^ re-bound here
@@ -447,7 +447,7 @@ LL | type TADyn2 = Box<dyn Iterator<Item: Copy, Item: Copy>>;
    |                                `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:136:43
+  --> $DIR/duplicate.rs:253:43
    |
 LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
    |                            -------------  ^^^^^^^^^^^^^ re-bound here
@@ -455,28 +455,28 @@ LL | type TADyn3 = dyn Iterator<Item: 'static, Item: 'static>;
    |                            `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:125:43
+  --> $DIR/duplicate.rs:237:34
    |
-LL | trait TRA1 { type A: Iterator<Item: Copy, Item: Send>; }
-   |                               ----------  ^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
+LL |     type A: Iterator<Item: Copy, Item: Send>;
+   |                      ----------  ^^^^^^^^^^ re-bound here
+   |                      |
+   |                      `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:127:43
+  --> $DIR/duplicate.rs:241:34
    |
-LL | trait TRA2 { type A: Iterator<Item: Copy, Item: Copy>; }
-   |                               ----------  ^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
+LL |     type A: Iterator<Item: Copy, Item: Copy>;
+   |                      ----------  ^^^^^^^^^^ re-bound here
+   |                      |
+   |                      `Item` bound here first
 
 error[E0719]: the value of the associated type `Item` (from trait `Iterator`) is already specified
-  --> $DIR/duplicate.rs:129:46
+  --> $DIR/duplicate.rs:245:37
    |
-LL | trait TRA3 { type A: Iterator<Item: 'static, Item: 'static>; }
-   |                               -------------  ^^^^^^^^^^^^^ re-bound here
-   |                               |
-   |                               `Item` bound here first
+LL |     type A: Iterator<Item: 'static, Item: 'static>;
+   |                      -------------  ^^^^^^^^^^^^^ re-bound here
+   |                      |
+   |                      `Item` bound here first
 
 error: aborting due to 60 previous errors
 
diff --git a/src/test/ui/associated-type-bounds/trait-alias-impl-trait.full_tait.stderr b/src/test/ui/associated-type-bounds/trait-alias-impl-trait.full_tait.stderr
deleted file mode 100644
index d4da4babf4e..00000000000
--- a/src/test/ui/associated-type-bounds/trait-alias-impl-trait.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/trait-alias-impl-trait.rs:6:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/associated-type-bounds/trait-alias-impl-trait.rs b/src/test/ui/associated-type-bounds/trait-alias-impl-trait.rs
index cf20631af5b..e223a895741 100644
--- a/src/test/ui/associated-type-bounds/trait-alias-impl-trait.rs
+++ b/src/test/ui/associated-type-bounds/trait-alias-impl-trait.rs
@@ -1,39 +1,59 @@
 // run-pass
 
 #![feature(associated_type_bounds)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::ops::Add;
 
-trait Tr1 { type As1; fn mk(self) -> Self::As1; }
-trait Tr2<'a> { fn tr2(self) -> &'a Self; }
+trait Tr1 {
+    type As1;
+    fn mk(self) -> Self::As1;
+}
+trait Tr2<'a> {
+    fn tr2(self) -> &'a Self;
+}
 
-fn assert_copy<T: Copy>(x: T) { let _x = x; let _x = x; }
+fn assert_copy<T: Copy>(x: T) {
+    let _x = x;
+    let _x = x;
+}
 fn assert_static<T: 'static>(_: T) {}
 fn assert_forall_tr2<T: for<'a> Tr2<'a>>(_: T) {}
 
 struct S1;
 #[derive(Copy, Clone)]
 struct S2;
-impl Tr1 for S1 { type As1 = S2; fn mk(self) -> Self::As1 { S2 } }
+impl Tr1 for S1 {
+    type As1 = S2;
+    fn mk(self) -> Self::As1 {
+        S2
+    }
+}
 
 type Et1 = impl Tr1<As1: Copy>;
-fn def_et1() -> Et1 { S1 }
-pub fn use_et1() { assert_copy(def_et1().mk()); }
+fn def_et1() -> Et1 {
+    S1
+}
+pub fn use_et1() {
+    assert_copy(def_et1().mk());
+}
 
 type Et2 = impl Tr1<As1: 'static>;
-fn def_et2() -> Et2 { S1 }
-pub fn use_et2() { assert_static(def_et2().mk()); }
+fn def_et2() -> Et2 {
+    S1
+}
+pub fn use_et2() {
+    assert_static(def_et2().mk());
+}
 
 type Et3 = impl Tr1<As1: Clone + Iterator<Item: Add<u8, Output: Into<u8>>>>;
 fn def_et3() -> Et3 {
     struct A;
     impl Tr1 for A {
         type As1 = core::ops::Range<u8>;
-        fn mk(self) -> Self::As1 { 0..10 }
+        fn mk(self) -> Self::As1 {
+            0..10
+        }
     }
     A
 }
@@ -53,14 +73,20 @@ fn def_et4() -> Et4 {
     struct A;
     impl Tr1 for A {
         type As1 = A;
-        fn mk(self) -> A { A }
+        fn mk(self) -> A {
+            A
+        }
     }
     impl<'a> Tr2<'a> for A {
-        fn tr2(self) -> &'a Self { &A }
+        fn tr2(self) -> &'a Self {
+            &A
+        }
     }
     A
 }
-pub fn use_et4() { assert_forall_tr2(def_et4().mk()); }
+pub fn use_et4() {
+    assert_forall_tr2(def_et4().mk());
+}
 
 fn main() {
     let _ = use_et1();
diff --git a/src/test/ui/associated-types/issue-63591.full_tait.stderr b/src/test/ui/associated-types/issue-63591.full_tait.stderr
deleted file mode 100644
index 9857f7e2677..00000000000
--- a/src/test/ui/associated-types/issue-63591.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-63591.rs:6:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/associated-types/issue-63591.rs b/src/test/ui/associated-types/issue-63591.rs
index bba9ae2d9e7..4d2e39f4da6 100644
--- a/src/test/ui/associated-types/issue-63591.rs
+++ b/src/test/ui/associated-types/issue-63591.rs
@@ -1,10 +1,7 @@
 // check-pass
 
 #![feature(associated_type_bounds)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
diff --git a/src/test/ui/async-await/issues/issue-60655-latebound-regions.full_tait.stderr b/src/test/ui/async-await/issues/issue-60655-latebound-regions.full_tait.stderr
deleted file mode 100644
index cc61becd71b..00000000000
--- a/src/test/ui/async-await/issues/issue-60655-latebound-regions.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-60655-latebound-regions.rs:8:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/async-await/issues/issue-60655-latebound-regions.rs b/src/test/ui/async-await/issues/issue-60655-latebound-regions.rs
index f8b6a438961..66a3b07c3bd 100644
--- a/src/test/ui/async-await/issues/issue-60655-latebound-regions.rs
+++ b/src/test/ui/async-await/issues/issue-60655-latebound-regions.rs
@@ -3,10 +3,7 @@
 // check-pass
 // edition:2018
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::future::Future;
 
diff --git a/src/test/ui/bastion-of-the-turbofish.rs b/src/test/ui/bastion-of-the-turbofish.rs
index 233ddbbe117..e12857008a5 100644
--- a/src/test/ui/bastion-of-the-turbofish.rs
+++ b/src/test/ui/bastion-of-the-turbofish.rs
@@ -20,13 +20,17 @@
 // in permitting generic arguments to be provided without the consent of the
 // Great Turbofish. Should you be so naïve as to try to revolt against its
 // mighty clutches, here shall its wrath be indomitably displayed. This
-// program must pass for all eternity, fundamentally at odds with an impetuous
-// rebellion against the Turbofish.
+// program must pass for all eternity: forever watched by the guardian angel
+// which gave this beast its name, and stands fundamentally at odds with the
+// impetuous rebellion against the Turbofish.
 //
 // My heart aches in sorrow, for I know I am defeated. Let this be a warning
-// to all those who come after. Here stands the bastion of the Turbofish.
+// to all those who come after: for they too must overcome the impassible
+// hurdle of defeating the great beast, championed by a resolute winged
+// guardian.
 //
-// RIP Anna Harren, Guardian Angel of the Hallowed Turbofish. <3
+// Here stands the Bastion of the Turbofish, a memorial to Anna Harren,
+// Guardian Angel of these Hallowed Grounds. <3
 
 // See https://github.com/rust-lang/rust/pull/53562
 // and https://github.com/rust-lang/rfcs/pull/2527
@@ -34,6 +38,6 @@
 // for context.
 
 fn main() {
-    let (oh, woe, is, me) = ("the", "Turbofish", "remains", "undefeated");
-    let _: (bool, bool) = (oh<woe, is>(me));
+    let (the, guardian, stands, resolute) = ("the", "Turbofish", "remains", "undefeated");
+    let _: (bool, bool) = (the<guardian, stands>(resolute));
 }
diff --git a/src/test/ui/borrowck/issue-33819.rs b/src/test/ui/borrowck/issue-33819.rs
index b73e85974a8..fff5015cdc1 100644
--- a/src/test/ui/borrowck/issue-33819.rs
+++ b/src/test/ui/borrowck/issue-33819.rs
@@ -3,6 +3,7 @@ fn main() {
     match op {
         Some(ref v) => { let a = &mut v; },
         //~^ ERROR cannot borrow `v` as mutable, as it is not declared as mutable
+        //~| HELP try removing `&mut` here
         None => {},
     }
 }
diff --git a/src/test/ui/borrowck/issue-33819.stderr b/src/test/ui/borrowck/issue-33819.stderr
index 8bc2d82cd3f..f77fdbf2b6b 100644
--- a/src/test/ui/borrowck/issue-33819.stderr
+++ b/src/test/ui/borrowck/issue-33819.stderr
@@ -5,7 +5,7 @@ LL |         Some(ref v) => { let a = &mut v; },
    |                                  ^^^^^^
    |                                  |
    |                                  cannot borrow as mutable
-   |                                  try removing `&mut` here
+   |                                  help: try removing `&mut` here
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/borrowck/issue-64453.rs b/src/test/ui/borrowck/issue-64453.rs
index 3e803f3b6d8..9e70a847457 100644
--- a/src/test/ui/borrowck/issue-64453.rs
+++ b/src/test/ui/borrowck/issue-64453.rs
@@ -3,7 +3,7 @@ struct Value;
 
 static settings_dir: String = format!("");
 //~^ ERROR calls in statics are limited to constant functions
-//~| ERROR calls in statics are limited to constant functions
+//~| ERROR is not yet stable as a const
 
 fn from_string(_: String) -> Value {
     Value
diff --git a/src/test/ui/borrowck/issue-64453.stderr b/src/test/ui/borrowck/issue-64453.stderr
index bd8270ef958..5513c3d217e 100644
--- a/src/test/ui/borrowck/issue-64453.stderr
+++ b/src/test/ui/borrowck/issue-64453.stderr
@@ -4,12 +4,13 @@ error[E0507]: cannot move out of static item `settings_dir`
 LL |     let settings_data = from_string(settings_dir);
    |                                     ^^^^^^^^^^^^ move occurs because `settings_dir` has type `String`, which does not implement the `Copy` trait
 
-error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
+error: `Arguments::<'a>::new_v1` is not yet stable as a const fn
   --> $DIR/issue-64453.rs:4:31
    |
 LL | static settings_dir: String = format!("");
    |                               ^^^^^^^^^^^
    |
+   = help: add `#![feature(const_fmt_arguments_new)]` to the crate attributes to enable
    = note: this error originates in the macro `$crate::__export::format_args` (in Nightly builds, run with -Z macro-backtrace for more info)
 
 error[E0015]: calls in statics are limited to constant functions, tuple structs and tuple variants
diff --git a/src/test/ui/borrowck/mut-borrow-of-mut-ref.rs b/src/test/ui/borrowck/mut-borrow-of-mut-ref.rs
index 59b541a24d1..3f092846dd4 100644
--- a/src/test/ui/borrowck/mut-borrow-of-mut-ref.rs
+++ b/src/test/ui/borrowck/mut-borrow-of-mut-ref.rs
@@ -4,8 +4,10 @@
 pub fn f(b: &mut i32) {
     g(&mut b);
     //~^ ERROR cannot borrow
+    //~| HELP try removing `&mut` here
     g(&mut &mut b);
     //~^ ERROR cannot borrow
+    //~| HELP try removing `&mut` here
 }
 
 pub fn g(_: &mut i32) {}
diff --git a/src/test/ui/borrowck/mut-borrow-of-mut-ref.stderr b/src/test/ui/borrowck/mut-borrow-of-mut-ref.stderr
index 8710f204698..cb7355b2335 100644
--- a/src/test/ui/borrowck/mut-borrow-of-mut-ref.stderr
+++ b/src/test/ui/borrowck/mut-borrow-of-mut-ref.stderr
@@ -5,16 +5,16 @@ LL |     g(&mut b);
    |       ^^^^^^
    |       |
    |       cannot borrow as mutable
-   |       try removing `&mut` here
+   |       help: try removing `&mut` here
 
 error[E0596]: cannot borrow `b` as mutable, as it is not declared as mutable
-  --> $DIR/mut-borrow-of-mut-ref.rs:7:12
+  --> $DIR/mut-borrow-of-mut-ref.rs:8:12
    |
 LL |     g(&mut &mut b);
    |            ^^^^^^
    |            |
    |            cannot borrow as mutable
-   |            try removing `&mut` here
+   |            help: try removing `&mut` here
 
 error: aborting due to 2 previous errors
 
diff --git a/src/test/ui/consts/const-eval/const_panic_2021.rs b/src/test/ui/consts/const-eval/const_panic_2021.rs
new file mode 100644
index 00000000000..daef34cd6a3
--- /dev/null
+++ b/src/test/ui/consts/const-eval/const_panic_2021.rs
@@ -0,0 +1,27 @@
+// edition:2021
+#![feature(const_panic)]
+#![crate_type = "lib"]
+
+const A: () = std::panic!("blåhaj");
+//~^ ERROR evaluation of constant value failed
+
+const B: () = std::panic!();
+//~^ ERROR evaluation of constant value failed
+
+const C: () = std::unreachable!();
+//~^ ERROR evaluation of constant value failed
+
+const D: () = std::unimplemented!();
+//~^ ERROR evaluation of constant value failed
+
+const E: () = core::panic!("shark");
+//~^ ERROR evaluation of constant value failed
+
+const F: () = core::panic!();
+//~^ ERROR evaluation of constant value failed
+
+const G: () = core::unreachable!();
+//~^ ERROR evaluation of constant value failed
+
+const H: () = core::unimplemented!();
+//~^ ERROR evaluation of constant value failed
diff --git a/src/test/ui/consts/const-eval/const_panic_2021.stderr b/src/test/ui/consts/const-eval/const_panic_2021.stderr
new file mode 100644
index 00000000000..c1bdab3693d
--- /dev/null
+++ b/src/test/ui/consts/const-eval/const_panic_2021.stderr
@@ -0,0 +1,67 @@
+error[E0080]: evaluation of constant value failed
+  --> $DIR/const_panic_2021.rs:5:15
+   |
+LL | const A: () = std::panic!("blåhaj");
+   |               ^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'blåhaj', $DIR/const_panic_2021.rs:5:15
+   |
+   = note: this error originates in the macro `$crate::panic::panic_2021` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0080]: evaluation of constant value failed
+  --> $DIR/const_panic_2021.rs:8:15
+   |
+LL | const B: () = std::panic!();
+   |               ^^^^^^^^^^^^^ the evaluated program panicked at 'explicit panic', $DIR/const_panic_2021.rs:8:15
+   |
+   = note: this error originates in the macro `$crate::panic::panic_2021` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0080]: evaluation of constant value failed
+  --> $DIR/const_panic_2021.rs:11:15
+   |
+LL | const C: () = std::unreachable!();
+   |               ^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'internal error: entered unreachable code', $DIR/const_panic_2021.rs:11:15
+   |
+   = note: this error originates in the macro `$crate::panic::panic_2015` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0080]: evaluation of constant value failed
+  --> $DIR/const_panic_2021.rs:14:15
+   |
+LL | const D: () = std::unimplemented!();
+   |               ^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'not implemented', $DIR/const_panic_2021.rs:14:15
+   |
+   = note: this error originates in the macro `$crate::panic::panic_2015` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0080]: evaluation of constant value failed
+  --> $DIR/const_panic_2021.rs:17:15
+   |
+LL | const E: () = core::panic!("shark");
+   |               ^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'shark', $DIR/const_panic_2021.rs:17:15
+   |
+   = note: this error originates in the macro `$crate::panic::panic_2021` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0080]: evaluation of constant value failed
+  --> $DIR/const_panic_2021.rs:20:15
+   |
+LL | const F: () = core::panic!();
+   |               ^^^^^^^^^^^^^^ the evaluated program panicked at 'explicit panic', $DIR/const_panic_2021.rs:20:15
+   |
+   = note: this error originates in the macro `$crate::panic::panic_2021` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0080]: evaluation of constant value failed
+  --> $DIR/const_panic_2021.rs:23:15
+   |
+LL | const G: () = core::unreachable!();
+   |               ^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'internal error: entered unreachable code', $DIR/const_panic_2021.rs:23:15
+   |
+   = note: this error originates in the macro `$crate::panic::panic_2015` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error[E0080]: evaluation of constant value failed
+  --> $DIR/const_panic_2021.rs:26:15
+   |
+LL | const H: () = core::unimplemented!();
+   |               ^^^^^^^^^^^^^^^^^^^^^^ the evaluated program panicked at 'not implemented', $DIR/const_panic_2021.rs:26:15
+   |
+   = note: this error originates in the macro `$crate::panic::panic_2015` (in Nightly builds, run with -Z macro-backtrace for more info)
+
+error: aborting due to 8 previous errors
+
+For more information about this error, try `rustc --explain E0080`.
diff --git a/src/test/ui/did_you_mean/issue-31424.rs b/src/test/ui/did_you_mean/issue-31424.rs
index d321d64a312..95ccf2a4c89 100644
--- a/src/test/ui/did_you_mean/issue-31424.rs
+++ b/src/test/ui/did_you_mean/issue-31424.rs
@@ -5,13 +5,16 @@ struct Struct;
 impl Struct {
     fn foo(&mut self) {
         (&mut self).bar(); //~ ERROR cannot borrow
+        //~^ HELP try removing `&mut` here
     }
 
     // In this case we could keep the suggestion, but to distinguish the
     // two cases is pretty hard. It's an obscure case anyway.
     fn bar(self: &mut Self) {
         //~^ WARN function cannot return without recursing
+        //~^^ HELP a `loop` may express intention better if this is on purpose
         (&mut self).bar(); //~ ERROR cannot borrow
+        //~^ HELP try removing `&mut` here
     }
 }
 
diff --git a/src/test/ui/did_you_mean/issue-31424.stderr b/src/test/ui/did_you_mean/issue-31424.stderr
index b9eb8dd236d..838e81043db 100644
--- a/src/test/ui/did_you_mean/issue-31424.stderr
+++ b/src/test/ui/did_you_mean/issue-31424.stderr
@@ -5,14 +5,14 @@ LL |         (&mut self).bar();
    |         ^^^^^^^^^^^
    |         |
    |         cannot borrow as mutable
-   |         try removing `&mut` here
+   |         help: try removing `&mut` here
 
 warning: function cannot return without recursing
-  --> $DIR/issue-31424.rs:12:5
+  --> $DIR/issue-31424.rs:13:5
    |
 LL |     fn bar(self: &mut Self) {
    |     ^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
-LL |
+...
 LL |         (&mut self).bar();
    |         ----------------- recursive call site
    |
@@ -20,13 +20,13 @@ LL |         (&mut self).bar();
    = help: a `loop` may express intention better if this is on purpose
 
 error[E0596]: cannot borrow `self` as mutable, as it is not declared as mutable
-  --> $DIR/issue-31424.rs:14:9
+  --> $DIR/issue-31424.rs:16:9
    |
 LL |         (&mut self).bar();
    |         ^^^^^^^^^^^
    |         |
    |         cannot borrow as mutable
-   |         try removing `&mut` here
+   |         help: try removing `&mut` here
 
 error: aborting due to 2 previous errors; 1 warning emitted
 
diff --git a/src/test/ui/did_you_mean/issue-34126.rs b/src/test/ui/did_you_mean/issue-34126.rs
index 4989577dbb6..53516f4f247 100644
--- a/src/test/ui/did_you_mean/issue-34126.rs
+++ b/src/test/ui/did_you_mean/issue-34126.rs
@@ -5,6 +5,7 @@ impl Z {
     fn start(&mut self) {
         self.run(&mut self); //~ ERROR cannot borrow
         //~| ERROR cannot borrow
+        //~| HELP try removing `&mut` here
     }
 }
 
diff --git a/src/test/ui/did_you_mean/issue-34126.stderr b/src/test/ui/did_you_mean/issue-34126.stderr
index 0843df29b5c..669684fb3dd 100644
--- a/src/test/ui/did_you_mean/issue-34126.stderr
+++ b/src/test/ui/did_you_mean/issue-34126.stderr
@@ -5,7 +5,7 @@ LL |         self.run(&mut self);
    |                  ^^^^^^^^^
    |                  |
    |                  cannot borrow as mutable
-   |                  try removing `&mut` here
+   |                  help: try removing `&mut` here
 
 error[E0502]: cannot borrow `self` as mutable because it is also borrowed as immutable
   --> $DIR/issue-34126.rs:6:18
diff --git a/src/test/ui/did_you_mean/issue-34337.rs b/src/test/ui/did_you_mean/issue-34337.rs
index bb699609b3d..e89eda33f8c 100644
--- a/src/test/ui/did_you_mean/issue-34337.rs
+++ b/src/test/ui/did_you_mean/issue-34337.rs
@@ -4,4 +4,5 @@ fn main() {
     let mut v: Vec<String> = Vec::new();
     let ref mut key = v[0];
     get(&mut key); //~ ERROR cannot borrow
+    //~| HELP try removing `&mut` here
 }
diff --git a/src/test/ui/did_you_mean/issue-34337.stderr b/src/test/ui/did_you_mean/issue-34337.stderr
index 81f7b6dbf1b..1f18ea8923b 100644
--- a/src/test/ui/did_you_mean/issue-34337.stderr
+++ b/src/test/ui/did_you_mean/issue-34337.stderr
@@ -5,7 +5,7 @@ LL |     get(&mut key);
    |         ^^^^^^^^
    |         |
    |         cannot borrow as mutable
-   |         try removing `&mut` here
+   |         help: try removing `&mut` here
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/did_you_mean/issue-37139.rs b/src/test/ui/did_you_mean/issue-37139.rs
index 07d855d0969..6a19d85ff79 100644
--- a/src/test/ui/did_you_mean/issue-37139.rs
+++ b/src/test/ui/did_you_mean/issue-37139.rs
@@ -10,6 +10,7 @@ fn main() {
     match x {
         TestEnum::Item(ref mut x) => {
             test(&mut x); //~ ERROR cannot borrow `x` as mutable, as it is not declared as mutable
+            //~| HELP try removing `&mut` here
         }
     }
 }
diff --git a/src/test/ui/did_you_mean/issue-37139.stderr b/src/test/ui/did_you_mean/issue-37139.stderr
index 163817dd9bf..dc1bdfaaed5 100644
--- a/src/test/ui/did_you_mean/issue-37139.stderr
+++ b/src/test/ui/did_you_mean/issue-37139.stderr
@@ -5,7 +5,7 @@ LL |             test(&mut x);
    |                  ^^^^^^
    |                  |
    |                  cannot borrow as mutable
-   |                  try removing `&mut` here
+   |                  help: try removing `&mut` here
 
 error: aborting due to previous error
 
diff --git a/src/test/ui/entry-point/imported_main_const_fn_item_type_forbidden.rs b/src/test/ui/entry-point/imported_main_const_fn_item_type_forbidden.rs
index d8553815b75..e0bb7dbfae9 100644
--- a/src/test/ui/entry-point/imported_main_const_fn_item_type_forbidden.rs
+++ b/src/test/ui/entry-point/imported_main_const_fn_item_type_forbidden.rs
@@ -1,5 +1,5 @@
 #![feature(imported_main)]
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 #![allow(incomplete_features)]
 //~^^^ ERROR `main` function not found in crate
 pub mod foo {
diff --git a/src/test/ui/entry-point/imported_main_const_fn_item_type_forbidden.stderr b/src/test/ui/entry-point/imported_main_const_fn_item_type_forbidden.stderr
index c4c0afc5687..6aa170fdfd2 100644
--- a/src/test/ui/entry-point/imported_main_const_fn_item_type_forbidden.stderr
+++ b/src/test/ui/entry-point/imported_main_const_fn_item_type_forbidden.stderr
@@ -2,7 +2,7 @@ error[E0601]: `main` function not found in crate `imported_main_const_fn_item_ty
   --> $DIR/imported_main_const_fn_item_type_forbidden.rs:1:1
    |
 LL | / #![feature(imported_main)]
-LL | | #![feature(min_type_alias_impl_trait)]
+LL | | #![feature(type_alias_impl_trait)]
 LL | | #![allow(incomplete_features)]
 LL | |
 ...  |
diff --git a/src/test/ui/feature-gates/feature-gate-min_type_alias_impl_trait.rs b/src/test/ui/feature-gates/feature-gate-min_type_alias_impl_trait.rs
deleted file mode 100644
index ffe297a5a6a..00000000000
--- a/src/test/ui/feature-gates/feature-gate-min_type_alias_impl_trait.rs
+++ /dev/null
@@ -1,50 +0,0 @@
-// ignore-compare-mode-chalk
-use std::fmt::Debug;
-
-type Foo = impl Debug; //~ ERROR `impl Trait` in type aliases is unstable
-
-trait Bar {
-    type Baa: Debug;
-    fn define() -> Self::Baa;
-}
-
-impl Bar for () {
-    type Baa = impl Debug; //~ ERROR `impl Trait` in type aliases is unstable
-    fn define() -> Self::Baa {
-        0
-    }
-}
-
-fn define() -> Foo {
-    0
-}
-
-trait TraitWithDefault {
-    type Assoc = impl Debug;
-    //~^ ERROR associated type defaults are unstable
-    //~| ERROR `impl Trait` not allowed outside of function
-    //~| ERROR `impl Trait` in type aliases is unstable
-}
-
-type NestedFree = (Vec<impl Debug>, impl Debug, impl Iterator<Item = impl Debug>);
-//~^ ERROR `impl Trait` in type aliases is unstable
-//~| ERROR `impl Trait` in type aliases is unstable
-//~| ERROR `impl Trait` in type aliases is unstable
-//~| ERROR `impl Trait` in type aliases is unstable
-
-fn define_multiple() -> NestedFree {
-    (vec![true], 0u8, 0i32..1)
-}
-
-impl Bar for u8 {
-    type Baa = (Vec<impl Debug>, impl Debug, impl Iterator<Item = impl Debug> + Debug);
-    //~^ ERROR `impl Trait` in type aliases is unstable
-    //~| ERROR `impl Trait` in type aliases is unstable
-    //~| ERROR `impl Trait` in type aliases is unstable
-    //~| ERROR `impl Trait` in type aliases is unstable
-    fn define() -> Self::Baa {
-        (vec![true], 0u8, 0i32..1)
-    }
-}
-
-fn main() {}
diff --git a/src/test/ui/feature-gates/feature-gate-min_type_alias_impl_trait.stderr b/src/test/ui/feature-gates/feature-gate-min_type_alias_impl_trait.stderr
deleted file mode 100644
index 07857289aae..00000000000
--- a/src/test/ui/feature-gates/feature-gate-min_type_alias_impl_trait.stderr
+++ /dev/null
@@ -1,118 +0,0 @@
-error[E0658]: `impl Trait` in type aliases is unstable
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:4:12
-   |
-LL | type Foo = impl Debug;
-   |            ^^^^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0658]: `impl Trait` in type aliases is unstable
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:12:16
-   |
-LL |     type Baa = impl Debug;
-   |                ^^^^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0658]: associated type defaults are unstable
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:23:5
-   |
-LL |     type Assoc = impl Debug;
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #29661 <https://github.com/rust-lang/rust/issues/29661> for more information
-   = help: add `#![feature(associated_type_defaults)]` to the crate attributes to enable
-
-error[E0658]: `impl Trait` in type aliases is unstable
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:23:18
-   |
-LL |     type Assoc = impl Debug;
-   |                  ^^^^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0658]: `impl Trait` in type aliases is unstable
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:29:24
-   |
-LL | type NestedFree = (Vec<impl Debug>, impl Debug, impl Iterator<Item = impl Debug>);
-   |                        ^^^^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0658]: `impl Trait` in type aliases is unstable
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:29:37
-   |
-LL | type NestedFree = (Vec<impl Debug>, impl Debug, impl Iterator<Item = impl Debug>);
-   |                                     ^^^^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0658]: `impl Trait` in type aliases is unstable
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:29:49
-   |
-LL | type NestedFree = (Vec<impl Debug>, impl Debug, impl Iterator<Item = impl Debug>);
-   |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0658]: `impl Trait` in type aliases is unstable
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:29:70
-   |
-LL | type NestedFree = (Vec<impl Debug>, impl Debug, impl Iterator<Item = impl Debug>);
-   |                                                                      ^^^^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0658]: `impl Trait` in type aliases is unstable
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:40:21
-   |
-LL |     type Baa = (Vec<impl Debug>, impl Debug, impl Iterator<Item = impl Debug> + Debug);
-   |                     ^^^^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0658]: `impl Trait` in type aliases is unstable
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:40:34
-   |
-LL |     type Baa = (Vec<impl Debug>, impl Debug, impl Iterator<Item = impl Debug> + Debug);
-   |                                  ^^^^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0658]: `impl Trait` in type aliases is unstable
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:40:46
-   |
-LL |     type Baa = (Vec<impl Debug>, impl Debug, impl Iterator<Item = impl Debug> + Debug);
-   |                                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0658]: `impl Trait` in type aliases is unstable
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:40:67
-   |
-LL |     type Baa = (Vec<impl Debug>, impl Debug, impl Iterator<Item = impl Debug> + Debug);
-   |                                                                   ^^^^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0562]: `impl Trait` not allowed outside of function and method return types
-  --> $DIR/feature-gate-min_type_alias_impl_trait.rs:23:18
-   |
-LL |     type Assoc = impl Debug;
-   |                  ^^^^^^^^^^
-
-error: aborting due to 13 previous errors
-
-Some errors have detailed explanations: E0562, E0658.
-For more information about an error, try `rustc --explain E0562`.
diff --git a/src/test/ui/feature-gates/feature-gate-type_alias_impl_trait.rs b/src/test/ui/feature-gates/feature-gate-type_alias_impl_trait.rs
index 4fb1cd2aae1..ea82837d4bf 100644
--- a/src/test/ui/feature-gates/feature-gate-type_alias_impl_trait.rs
+++ b/src/test/ui/feature-gates/feature-gate-type_alias_impl_trait.rs
@@ -1,5 +1,5 @@
 // ignore-compare-mode-chalk
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 use std::fmt::Debug;
 
 type Foo = impl Debug;
@@ -13,7 +13,7 @@ fn define() -> Bar {
 type Foo2 = impl Debug;
 
 fn define2() {
-    let x = || -> Foo2 { 42 }; //~ ERROR not permitted here
+    let x = || -> Foo2 { 42 };
 }
 
 type Foo3 = impl Debug;
diff --git a/src/test/ui/feature-gates/feature-gate-type_alias_impl_trait.stderr b/src/test/ui/feature-gates/feature-gate-type_alias_impl_trait.stderr
index 10409d5fc4b..da3ddb1c509 100644
--- a/src/test/ui/feature-gates/feature-gate-type_alias_impl_trait.stderr
+++ b/src/test/ui/feature-gates/feature-gate-type_alias_impl_trait.stderr
@@ -10,15 +10,6 @@ LL |     Bar(42)
    = note: expected opaque type `impl Debug`
                      found type `{integer}`
 
-error[E0658]: type alias impl trait is not permitted here
-  --> $DIR/feature-gate-type_alias_impl_trait.rs:16:19
-   |
-LL |     let x = || -> Foo2 { 42 };
-   |                   ^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
-
 error[E0308]: mismatched types
   --> $DIR/feature-gate-type_alias_impl_trait.rs:23:18
    |
@@ -77,7 +68,6 @@ error: could not find defining uses
 LL | type Foo4 = impl Debug;
    |             ^^^^^^^^^^
 
-error: aborting due to 8 previous errors
+error: aborting due to 7 previous errors
 
-Some errors have detailed explanations: E0308, E0658.
-For more information about an error, try `rustc --explain E0308`.
+For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/generator/layout-error.full_tait.stderr b/src/test/ui/generator/layout-error.full_tait.stderr
deleted file mode 100644
index bf647d08983..00000000000
--- a/src/test/ui/generator/layout-error.full_tait.stderr
+++ /dev/null
@@ -1,18 +0,0 @@
-error[E0425]: cannot find value `Foo` in this scope
-  --> $DIR/layout-error.rs:24:17
-   |
-LL |         let a = Foo;
-   |                 ^^^ not found in this scope
-
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/layout-error.rs:8:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0425`.
diff --git a/src/test/ui/generator/layout-error.min_tait.stderr b/src/test/ui/generator/layout-error.min_tait.stderr
deleted file mode 100644
index ed31c260cbc..00000000000
--- a/src/test/ui/generator/layout-error.min_tait.stderr
+++ /dev/null
@@ -1,19 +0,0 @@
-error[E0425]: cannot find value `Foo` in this scope
-  --> $DIR/layout-error.rs:24:17
-   |
-LL |         let a = Foo;
-   |                 ^^^ not found in this scope
-
-error[E0658]: type alias impl trait is not permitted here
-  --> $DIR/layout-error.rs:30:27
-   |
-LL |     Task::spawn(&POOL, || cb());
-   |                           ^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
-
-error: aborting due to 2 previous errors
-
-Some errors have detailed explanations: E0425, E0658.
-For more information about an error, try `rustc --explain E0425`.
diff --git a/src/test/ui/generator/layout-error.rs b/src/test/ui/generator/layout-error.rs
index a5efc3899dd..7c3d187409a 100644
--- a/src/test/ui/generator/layout-error.rs
+++ b/src/test/ui/generator/layout-error.rs
@@ -3,10 +3,7 @@
 //
 // edition:2018
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 use std::future::Future;
 
 pub struct Task<F: Future>(F);
@@ -27,5 +24,5 @@ fn main() {
     type F = impl Future;
     // Check that statics are inhabited computes they layout.
     static POOL: Task<F> = Task::new();
-    Task::spawn(&POOL, || cb()); //[min_tait]~ ERROR type alias impl trait is not permitted here
+    Task::spawn(&POOL, || cb());
 }
diff --git a/src/test/ui/generator/layout-error.stderr b/src/test/ui/generator/layout-error.stderr
new file mode 100644
index 00000000000..b1a258f4f2c
--- /dev/null
+++ b/src/test/ui/generator/layout-error.stderr
@@ -0,0 +1,9 @@
+error[E0425]: cannot find value `Foo` in this scope
+  --> $DIR/layout-error.rs:21:17
+   |
+LL |         let a = Foo;
+   |                 ^^^ not found in this scope
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0425`.
diff --git a/src/test/ui/generator/metadata-sufficient-for-layout.full_tait.stderr b/src/test/ui/generator/metadata-sufficient-for-layout.full_tait.stderr
deleted file mode 100644
index 1e609e83882..00000000000
--- a/src/test/ui/generator/metadata-sufficient-for-layout.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/metadata-sufficient-for-layout.rs:10:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: fatal error triggered by #[rustc_error]
-  --> $DIR/metadata-sufficient-for-layout.rs:28:1
-   |
-LL | fn main() {}
-   | ^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/generator/metadata-sufficient-for-layout.rs b/src/test/ui/generator/metadata-sufficient-for-layout.rs
index c01354569f0..d0e648ee775 100644
--- a/src/test/ui/generator/metadata-sufficient-for-layout.rs
+++ b/src/test/ui/generator/metadata-sufficient-for-layout.rs
@@ -5,10 +5,7 @@
 //
 // aux-build:metadata-sufficient-for-layout.rs
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait, rustc_attrs)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait, rustc_attrs)]
 #![feature(generator_trait)]
 
 extern crate metadata_sufficient_for_layout;
diff --git a/src/test/ui/generator/metadata-sufficient-for-layout.min_tait.stderr b/src/test/ui/generator/metadata-sufficient-for-layout.stderr
index 52d42fd59a0..3488b04f226 100644
--- a/src/test/ui/generator/metadata-sufficient-for-layout.min_tait.stderr
+++ b/src/test/ui/generator/metadata-sufficient-for-layout.stderr
@@ -1,5 +1,5 @@
 error: fatal error triggered by #[rustc_error]
-  --> $DIR/metadata-sufficient-for-layout.rs:28:1
+  --> $DIR/metadata-sufficient-for-layout.rs:25:1
    |
 LL | fn main() {}
    | ^^^^^^^^^
diff --git a/src/test/ui/impl-trait/associated-impl-trait-type-generic-trait.full_tait.stderr b/src/test/ui/impl-trait/associated-impl-trait-type-generic-trait.full_tait.stderr
deleted file mode 100644
index 174c4c62da9..00000000000
--- a/src/test/ui/impl-trait/associated-impl-trait-type-generic-trait.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/associated-impl-trait-type-generic-trait.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/impl-trait/associated-impl-trait-type-generic-trait.rs b/src/test/ui/impl-trait/associated-impl-trait-type-generic-trait.rs
index b2dad596ffa..6c7c46b0e3d 100644
--- a/src/test/ui/impl-trait/associated-impl-trait-type-generic-trait.rs
+++ b/src/test/ui/impl-trait/associated-impl-trait-type-generic-trait.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 // build-pass (FIXME(62277): could be check-pass?)
 
 trait Bar {}
diff --git a/src/test/ui/impl-trait/associated-impl-trait-type-trivial.full_tait.stderr b/src/test/ui/impl-trait/associated-impl-trait-type-trivial.full_tait.stderr
deleted file mode 100644
index e3dd4a60b4d..00000000000
--- a/src/test/ui/impl-trait/associated-impl-trait-type-trivial.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/associated-impl-trait-type-trivial.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/impl-trait/associated-impl-trait-type-trivial.rs b/src/test/ui/impl-trait/associated-impl-trait-type-trivial.rs
index c101ba22948..cdda341cad8 100644
--- a/src/test/ui/impl-trait/associated-impl-trait-type-trivial.rs
+++ b/src/test/ui/impl-trait/associated-impl-trait-type-trivial.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 // build-pass (FIXME(62277): could be check-pass?)
 
 trait Bar {}
diff --git a/src/test/ui/impl-trait/associated-impl-trait-type.full_tait.stderr b/src/test/ui/impl-trait/associated-impl-trait-type.full_tait.stderr
deleted file mode 100644
index 39147b00a34..00000000000
--- a/src/test/ui/impl-trait/associated-impl-trait-type.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/associated-impl-trait-type.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/impl-trait/associated-impl-trait-type.rs b/src/test/ui/impl-trait/associated-impl-trait-type.rs
index 5c28eba2261..d0661d66f4b 100644
--- a/src/test/ui/impl-trait/associated-impl-trait-type.rs
+++ b/src/test/ui/impl-trait/associated-impl-trait-type.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 // build-pass (FIXME(62277): could be check-pass?)
 
 trait Bar {}
diff --git a/src/test/ui/impl-trait/auto-trait.full_tait.stderr b/src/test/ui/impl-trait/auto-trait.full_tait.stderr
deleted file mode 100644
index 314617748b0..00000000000
--- a/src/test/ui/impl-trait/auto-trait.full_tait.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/auto-trait.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<impl OpaqueTrait>`
-  --> $DIR/auto-trait.rs:24:1
-   |
-LL | impl<T: Send> AnotherTrait for T {}
-   | -------------------------------- first implementation here
-...
-LL | impl AnotherTrait for D<OpaqueType> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `D<impl OpaqueTrait>`
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/impl-trait/auto-trait.rs b/src/test/ui/impl-trait/auto-trait.rs
index c965a34c12b..cf2773f4ef5 100644
--- a/src/test/ui/impl-trait/auto-trait.rs
+++ b/src/test/ui/impl-trait/auto-trait.rs
@@ -1,9 +1,6 @@
 // Tests that type alias impls traits do not leak auto-traits for
 // the purposes of coherence checking
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait OpaqueTrait {}
 impl<T> OpaqueTrait for T {}
diff --git a/src/test/ui/impl-trait/auto-trait.min_tait.stderr b/src/test/ui/impl-trait/auto-trait.stderr
index 75a5b0cb87d..26cd8fb6a9b 100644
--- a/src/test/ui/impl-trait/auto-trait.min_tait.stderr
+++ b/src/test/ui/impl-trait/auto-trait.stderr
@@ -1,5 +1,5 @@
 error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<impl OpaqueTrait>`
-  --> $DIR/auto-trait.rs:24:1
+  --> $DIR/auto-trait.rs:21:1
    |
 LL | impl<T: Send> AnotherTrait for T {}
    | -------------------------------- first implementation here
diff --git a/src/test/ui/impl-trait/bound-normalization-pass.rs b/src/test/ui/impl-trait/bound-normalization-pass.rs
index 4218bc52065..51718079d2c 100644
--- a/src/test/ui/impl-trait/bound-normalization-pass.rs
+++ b/src/test/ui/impl-trait/bound-normalization-pass.rs
@@ -4,7 +4,7 @@
 //[sa] compile-flags: -Z save-analysis
 //-^ To make this the regression test for #75962.
 
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 // See issue 60414
 
diff --git a/src/test/ui/impl-trait/issue-55872-1.full_tait.stderr b/src/test/ui/impl-trait/issue-55872-1.full_tait.stderr
deleted file mode 100644
index 286dd7aafb4..00000000000
--- a/src/test/ui/impl-trait/issue-55872-1.full_tait.stderr
+++ /dev/null
@@ -1,57 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-55872-1.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0276]: impl has stricter requirements than trait
-  --> $DIR/issue-55872-1.rs:17:5
-   |
-LL |     fn foo<T>() -> Self::E;
-   |     ----------------------- definition of `foo` from trait
-...
-LL |     fn foo<T: Default>() -> Self::E {
-   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `T: Default`
-
-error[E0277]: the trait bound `S: Copy` is not satisfied in `(S, T)`
-  --> $DIR/issue-55872-1.rs:13:14
-   |
-LL |     type E = impl Copy;
-   |              ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `S`
-   |
-   = note: required because it appears within the type `(S, T)`
-help: consider further restricting this bound
-   |
-LL | impl<S: Default + std::marker::Copy> Bar for S {
-   |                 ^^^^^^^^^^^^^^^^^^^
-
-error[E0277]: the trait bound `T: Copy` is not satisfied in `(S, T)`
-  --> $DIR/issue-55872-1.rs:13:14
-   |
-LL |     type E = impl Copy;
-   |              ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `T`
-   |
-   = note: required because it appears within the type `(S, T)`
-help: consider further restricting this bound
-   |
-LL |     fn foo<T: Default + std::marker::Copy>() -> Self::E {
-   |                       ^^^^^^^^^^^^^^^^^^^
-
-error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
-  --> $DIR/issue-55872-1.rs:17:37
-   |
-LL |       fn foo<T: Default>() -> Self::E {
-   |  _____________________________________^
-LL | |
-LL | |
-LL | |         (S::default(), T::default())
-LL | |     }
-   | |_____^
-
-error: aborting due to 4 previous errors; 1 warning emitted
-
-Some errors have detailed explanations: E0276, E0277.
-For more information about an error, try `rustc --explain E0276`.
diff --git a/src/test/ui/impl-trait/issue-55872-1.rs b/src/test/ui/impl-trait/issue-55872-1.rs
index a9e9c9b5beb..72a060abae3 100644
--- a/src/test/ui/impl-trait/issue-55872-1.rs
+++ b/src/test/ui/impl-trait/issue-55872-1.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 pub trait Bar {
     type E: Copy;
diff --git a/src/test/ui/impl-trait/issue-55872-1.min_tait.stderr b/src/test/ui/impl-trait/issue-55872-1.stderr
index 653299f4cbc..6411c1b5d1c 100644
--- a/src/test/ui/impl-trait/issue-55872-1.min_tait.stderr
+++ b/src/test/ui/impl-trait/issue-55872-1.stderr
@@ -1,5 +1,5 @@
 error[E0276]: impl has stricter requirements than trait
-  --> $DIR/issue-55872-1.rs:17:5
+  --> $DIR/issue-55872-1.rs:14:5
    |
 LL |     fn foo<T>() -> Self::E;
    |     ----------------------- definition of `foo` from trait
@@ -8,7 +8,7 @@ LL |     fn foo<T: Default>() -> Self::E {
    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ impl has extra requirement `T: Default`
 
 error[E0277]: the trait bound `S: Copy` is not satisfied in `(S, T)`
-  --> $DIR/issue-55872-1.rs:13:14
+  --> $DIR/issue-55872-1.rs:10:14
    |
 LL |     type E = impl Copy;
    |              ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `S`
@@ -20,7 +20,7 @@ LL | impl<S: Default + std::marker::Copy> Bar for S {
    |                 ^^^^^^^^^^^^^^^^^^^
 
 error[E0277]: the trait bound `T: Copy` is not satisfied in `(S, T)`
-  --> $DIR/issue-55872-1.rs:13:14
+  --> $DIR/issue-55872-1.rs:10:14
    |
 LL |     type E = impl Copy;
    |              ^^^^^^^^^ within `(S, T)`, the trait `Copy` is not implemented for `T`
@@ -32,7 +32,7 @@ LL |     fn foo<T: Default + std::marker::Copy>() -> Self::E {
    |                       ^^^^^^^^^^^^^^^^^^^
 
 error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
-  --> $DIR/issue-55872-1.rs:17:37
+  --> $DIR/issue-55872-1.rs:14:37
    |
 LL |       fn foo<T: Default>() -> Self::E {
    |  _____________________________________^
diff --git a/src/test/ui/impl-trait/issue-55872-2.full_tait.stderr b/src/test/ui/impl-trait/issue-55872-2.full_tait.stderr
deleted file mode 100644
index a8fc681a093..00000000000
--- a/src/test/ui/impl-trait/issue-55872-2.full_tait.stderr
+++ /dev/null
@@ -1,28 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-55872-2.rs:6:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0277]: the trait bound `impl Future: Copy` is not satisfied
-  --> $DIR/issue-55872-2.rs:16:14
-   |
-LL |     type E = impl std::marker::Copy;
-   |              ^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `impl Future`
-
-error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
-  --> $DIR/issue-55872-2.rs:18:28
-   |
-LL |       fn foo<T>() -> Self::E {
-   |  ____________________________^
-LL | |
-LL | |         async {}
-LL | |     }
-   | |_____^
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/impl-trait/issue-55872-2.rs b/src/test/ui/impl-trait/issue-55872-2.rs
index cd72b2eec3c..6eda1dc62ec 100644
--- a/src/test/ui/impl-trait/issue-55872-2.rs
+++ b/src/test/ui/impl-trait/issue-55872-2.rs
@@ -1,10 +1,7 @@
 // edition:2018
 // ignore-compare-mode-chalk
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 pub trait Bar {
     type E: Copy;
diff --git a/src/test/ui/impl-trait/issue-55872-2.min_tait.stderr b/src/test/ui/impl-trait/issue-55872-2.stderr
index 57f81443dcc..58c5ee45051 100644
--- a/src/test/ui/impl-trait/issue-55872-2.min_tait.stderr
+++ b/src/test/ui/impl-trait/issue-55872-2.stderr
@@ -1,11 +1,11 @@
 error[E0277]: the trait bound `impl Future: Copy` is not satisfied
-  --> $DIR/issue-55872-2.rs:16:14
+  --> $DIR/issue-55872-2.rs:13:14
    |
 LL |     type E = impl std::marker::Copy;
    |              ^^^^^^^^^^^^^^^^^^^^^^ the trait `Copy` is not implemented for `impl Future`
 
 error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
-  --> $DIR/issue-55872-2.rs:18:28
+  --> $DIR/issue-55872-2.rs:15:28
    |
 LL |       fn foo<T>() -> Self::E {
    |  ____________________________^
diff --git a/src/test/ui/impl-trait/issue-55872.full_tait.stderr b/src/test/ui/impl-trait/issue-55872.full_tait.stderr
deleted file mode 100644
index e549fec1c22..00000000000
--- a/src/test/ui/impl-trait/issue-55872.full_tait.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-55872.rs:4:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
-  --> $DIR/issue-55872.rs:16:28
-   |
-LL |       fn foo<T>() -> Self::E {
-   |  ____________________________^
-LL | |
-LL | |         || ()
-LL | |     }
-   | |_____^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/impl-trait/issue-55872.rs b/src/test/ui/impl-trait/issue-55872.rs
index e3fc523fecc..bbd94025417 100644
--- a/src/test/ui/impl-trait/issue-55872.rs
+++ b/src/test/ui/impl-trait/issue-55872.rs
@@ -1,8 +1,5 @@
 // ignore-compare-mode-chalk
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 pub trait Bar {
     type E: Copy;
@@ -14,7 +11,7 @@ impl<S> Bar for S {
     type E = impl Copy;
 
     fn foo<T>() -> Self::E {
-    //~^ ERROR type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
+        //~^ ERROR type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
         || ()
     }
 }
diff --git a/src/test/ui/impl-trait/issue-55872.min_tait.stderr b/src/test/ui/impl-trait/issue-55872.stderr
index 341dba95cad..60654ec3461 100644
--- a/src/test/ui/impl-trait/issue-55872.min_tait.stderr
+++ b/src/test/ui/impl-trait/issue-55872.stderr
@@ -1,5 +1,5 @@
 error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
-  --> $DIR/issue-55872.rs:16:28
+  --> $DIR/issue-55872.rs:13:28
    |
 LL |       fn foo<T>() -> Self::E {
    |  ____________________________^
diff --git a/src/test/ui/impl-trait/issue-86465.rs b/src/test/ui/impl-trait/issue-86465.rs
index 23a3748c12c..a6976daff01 100644
--- a/src/test/ui/impl-trait/issue-86465.rs
+++ b/src/test/ui/impl-trait/issue-86465.rs
@@ -1,4 +1,4 @@
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 type X<'a, 'b> = impl std::fmt::Debug;
 
diff --git a/src/test/ui/impl-trait/issues/issue-53457.full_tait.stderr b/src/test/ui/impl-trait/issues/issue-53457.full_tait.stderr
deleted file mode 100644
index 906578c291f..00000000000
--- a/src/test/ui/impl-trait/issues/issue-53457.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-53457.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/impl-trait/issues/issue-53457.rs b/src/test/ui/impl-trait/issues/issue-53457.rs
index c44e7f01f25..7b9c2c53aad 100644
--- a/src/test/ui/impl-trait/issues/issue-53457.rs
+++ b/src/test/ui/impl-trait/issues/issue-53457.rs
@@ -1,10 +1,6 @@
 // check-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
-
+#![feature(type_alias_impl_trait)]
 type X = impl Clone;
 
 fn bar<F: Fn(&i32) + Clone>(f: F) -> F {
diff --git a/src/test/ui/impl-trait/issues/issue-70877.min_tait.stderr b/src/test/ui/impl-trait/issues/issue-70877.min_tait.stderr
deleted file mode 100644
index 1f4e3f78afa..00000000000
--- a/src/test/ui/impl-trait/issues/issue-70877.min_tait.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error[E0271]: type mismatch resolving `<Bar as Iterator>::Item == Box<(dyn for<'r> Fn(&'r (dyn ToString + 'r)) -> Option<String> + 'static)>`
-  --> $DIR/issue-70877.rs:10:12
-   |
-LL | type FooRet = impl std::fmt::Debug;
-   |               -------------------- the found opaque type
-...
-LL | type Foo = impl Iterator<Item = FooItem>;
-   |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected enum `Option`, found opaque type
-   |
-   = note: expected struct `Box<(dyn for<'r> Fn(&'r (dyn ToString + 'r)) -> Option<String> + 'static)>`
-              found struct `Box<(dyn for<'r> Fn(&'r (dyn ToString + 'r)) -> impl Debug + 'static)>`
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0271`.
diff --git a/src/test/ui/impl-trait/issues/issue-70877.rs b/src/test/ui/impl-trait/issues/issue-70877.rs
index 29aa705ef9d..853c2a82bed 100644
--- a/src/test/ui/impl-trait/issues/issue-70877.rs
+++ b/src/test/ui/impl-trait/issues/issue-70877.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-#![allow(incomplete_features)]
+#![feature(type_alias_impl_trait)]
 
 type FooArg<'a> = &'a dyn ToString;
 type FooRet = impl std::fmt::Debug;
diff --git a/src/test/ui/impl-trait/issues/issue-70877.full_tait.stderr b/src/test/ui/impl-trait/issues/issue-70877.stderr
index 1f4e3f78afa..b6861039f6a 100644
--- a/src/test/ui/impl-trait/issues/issue-70877.full_tait.stderr
+++ b/src/test/ui/impl-trait/issues/issue-70877.stderr
@@ -1,5 +1,5 @@
 error[E0271]: type mismatch resolving `<Bar as Iterator>::Item == Box<(dyn for<'r> Fn(&'r (dyn ToString + 'r)) -> Option<String> + 'static)>`
-  --> $DIR/issue-70877.rs:10:12
+  --> $DIR/issue-70877.rs:7:12
    |
 LL | type FooRet = impl std::fmt::Debug;
    |               -------------------- the found opaque type
diff --git a/src/test/ui/impl-trait/issues/issue-78722.full_tait.stderr b/src/test/ui/impl-trait/issues/issue-78722.full_tait.stderr
deleted file mode 100644
index 728644f7579..00000000000
--- a/src/test/ui/impl-trait/issues/issue-78722.full_tait.stderr
+++ /dev/null
@@ -1,32 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-78722.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0308]: mismatched types
-  --> $DIR/issue-78722.rs:15:20
-   |
-LL | type F = impl core::future::Future<Output = u8>;
-   |          -------------------------------------- the expected opaque type
-...
-LL |         let f: F = async { 1 };
-   |                -   ^^^^^^^^^^^ expected opaque type, found a different opaque type
-   |                |
-   |                expected due to this
-   | 
-  ::: $SRC_DIR/core/src/future/mod.rs:LL:COL
-   |
-LL | pub const fn from_generator<T>(gen: T) -> impl Future<Output = T::Return>
-   |                                           ------------------------------- the found opaque type
-   |
-   = note: expected opaque type `impl Future` (opaque type at <$DIR/issue-78722.rs:8:10>)
-              found opaque type `impl Future` (opaque type at <$SRC_DIR/core/src/future/mod.rs:LL:COL>)
-   = note: distinct uses of `impl Trait` result in different opaque types
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/impl-trait/issues/issue-78722.rs b/src/test/ui/impl-trait/issues/issue-78722.rs
index 480b55eed21..bdbd20f9d2b 100644
--- a/src/test/ui/impl-trait/issues/issue-78722.rs
+++ b/src/test/ui/impl-trait/issues/issue-78722.rs
@@ -1,9 +1,6 @@
 // edition:2018
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type F = impl core::future::Future<Output = u8>;
 
diff --git a/src/test/ui/impl-trait/issues/issue-78722.min_tait.stderr b/src/test/ui/impl-trait/issues/issue-78722.stderr
index 221b23ae3d2..f42d66d1243 100644
--- a/src/test/ui/impl-trait/issues/issue-78722.min_tait.stderr
+++ b/src/test/ui/impl-trait/issues/issue-78722.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/issue-78722.rs:15:20
+  --> $DIR/issue-78722.rs:12:20
    |
 LL | type F = impl core::future::Future<Output = u8>;
    |          -------------------------------------- the expected opaque type
@@ -14,7 +14,7 @@ LL |         let f: F = async { 1 };
 LL | pub const fn from_generator<T>(gen: T) -> impl Future<Output = T::Return>
    |                                           ------------------------------- the found opaque type
    |
-   = note: expected opaque type `impl Future` (opaque type at <$DIR/issue-78722.rs:8:10>)
+   = note: expected opaque type `impl Future` (opaque type at <$DIR/issue-78722.rs:5:10>)
               found opaque type `impl Future` (opaque type at <$SRC_DIR/core/src/future/mod.rs:LL:COL>)
    = note: distinct uses of `impl Trait` result in different opaque types
 
diff --git a/src/test/ui/impl-trait/issues/issue-86201.rs b/src/test/ui/impl-trait/issues/issue-86201.rs
index 8dc76f4f752..8cc4fef890a 100644
--- a/src/test/ui/impl-trait/issues/issue-86201.rs
+++ b/src/test/ui/impl-trait/issues/issue-86201.rs
@@ -1,5 +1,5 @@
 #![feature(unboxed_closures)]
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 type FunType = impl Fn<()>;
 //~^ could not find defining uses
diff --git a/src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.full_tait.stderr b/src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.full_tait.stderr
deleted file mode 100644
index b2ebc7230b9..00000000000
--- a/src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.full_tait.stderr
+++ /dev/null
@@ -1,24 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/error-handling-2.rs:6:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0700]: hidden type for `impl Trait` captures lifetime that does not appear in bounds
-  --> $DIR/error-handling-2.rs:16:60
-   |
-LL | fn foo<'a: 'b, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
-   |                                                            ^^^^^^^^^
-   |
-note: hidden type `*mut &'a i32` captures the lifetime `'a` as defined on the function body at 16:8
-  --> $DIR/error-handling-2.rs:16:8
-   |
-LL | fn foo<'a: 'b, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
-   |        ^^
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0700`.
diff --git a/src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.rs b/src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.rs
index 196ddf9b8e4..96d891b2cf1 100644
--- a/src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.rs
+++ b/src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.rs
@@ -1,10 +1,7 @@
 // compile-flags:-Zborrowck=mir
 
 #![feature(member_constraints)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 #[derive(Clone)]
 struct CopyIfEq<T, U>(T, U);
diff --git a/src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.min_tait.stderr b/src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.stderr
index 53745c290d0..59105f11805 100644
--- a/src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.min_tait.stderr
+++ b/src/test/ui/impl-trait/multiple-lifetimes/error-handling-2.stderr
@@ -1,11 +1,11 @@
 error[E0700]: hidden type for `impl Trait` captures lifetime that does not appear in bounds
-  --> $DIR/error-handling-2.rs:16:60
+  --> $DIR/error-handling-2.rs:13:60
    |
 LL | fn foo<'a: 'b, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
    |                                                            ^^^^^^^^^
    |
-note: hidden type `*mut &'a i32` captures the lifetime `'a` as defined on the function body at 16:8
-  --> $DIR/error-handling-2.rs:16:8
+note: hidden type `*mut &'a i32` captures the lifetime `'a` as defined on the function body at 13:8
+  --> $DIR/error-handling-2.rs:13:8
    |
 LL | fn foo<'a: 'b, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
    |        ^^
diff --git a/src/test/ui/impl-trait/multiple-lifetimes/error-handling.full_tait.stderr b/src/test/ui/impl-trait/multiple-lifetimes/error-handling.full_tait.stderr
deleted file mode 100644
index ff99d037d19..00000000000
--- a/src/test/ui/impl-trait/multiple-lifetimes/error-handling.full_tait.stderr
+++ /dev/null
@@ -1,24 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/error-handling.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: lifetime may not live long enough
-  --> $DIR/error-handling.rs:25:16
-   |
-LL | fn foo<'a, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
-   |        --  -- lifetime `'b` defined here
-   |        |
-   |        lifetime `'a` defined here
-...
-LL |         let _: &'b i32 = *u.0;
-   |                ^^^^^^^ type annotation requires that `'a` must outlive `'b`
-   |
-   = help: consider adding the following bound: `'a: 'b`
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/impl-trait/multiple-lifetimes/error-handling.rs b/src/test/ui/impl-trait/multiple-lifetimes/error-handling.rs
index 1ead78e02ed..6d88f16ea8a 100644
--- a/src/test/ui/impl-trait/multiple-lifetimes/error-handling.rs
+++ b/src/test/ui/impl-trait/multiple-lifetimes/error-handling.rs
@@ -1,9 +1,6 @@
 // compile-flags:-Zborrowck=mir
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 #[derive(Clone)]
 struct CopyIfEq<T, U>(T, U);
diff --git a/src/test/ui/impl-trait/multiple-lifetimes/error-handling.min_tait.stderr b/src/test/ui/impl-trait/multiple-lifetimes/error-handling.stderr
index 4b23ba81604..ccd0040030d 100644
--- a/src/test/ui/impl-trait/multiple-lifetimes/error-handling.min_tait.stderr
+++ b/src/test/ui/impl-trait/multiple-lifetimes/error-handling.stderr
@@ -1,5 +1,5 @@
 error: lifetime may not live long enough
-  --> $DIR/error-handling.rs:25:16
+  --> $DIR/error-handling.rs:22:16
    |
 LL | fn foo<'a, 'b, 'c>(x: &'static i32, mut y: &'a i32) -> E<'b, 'c> {
    |        --  -- lifetime `'b` defined here
diff --git a/src/test/ui/impl-trait/multiple-lifetimes/ordinary-bounds-pick-original-type-alias-impl-trait.rs b/src/test/ui/impl-trait/multiple-lifetimes/ordinary-bounds-pick-original-type-alias-impl-trait.rs
index b9857b7aa2f..529dcd8ece6 100644
--- a/src/test/ui/impl-trait/multiple-lifetimes/ordinary-bounds-pick-original-type-alias-impl-trait.rs
+++ b/src/test/ui/impl-trait/multiple-lifetimes/ordinary-bounds-pick-original-type-alias-impl-trait.rs
@@ -3,7 +3,7 @@
 // revisions: migrate mir
 //[mir]compile-flags: -Z borrowck=mir
 
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 trait Trait<'a, 'b> {}
 impl<T> Trait<'_, '_> for T {}
 
diff --git a/src/test/ui/impl-trait/negative-reasoning.full_tait.stderr b/src/test/ui/impl-trait/negative-reasoning.full_tait.stderr
deleted file mode 100644
index bccbc8cb36b..00000000000
--- a/src/test/ui/impl-trait/negative-reasoning.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/negative-reasoning.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<impl OpaqueTrait>`
-  --> $DIR/negative-reasoning.rs:22:1
-   |
-LL | impl<T: std::fmt::Debug> AnotherTrait for T {}
-   | ------------------------------------------- first implementation here
-...
-LL | impl AnotherTrait for D<OpaqueType> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `D<impl OpaqueTrait>`
-   |
-   = note: upstream crates may add a new impl of trait `std::fmt::Debug` for type `impl OpaqueTrait` in future versions
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0119`.
diff --git a/src/test/ui/impl-trait/negative-reasoning.rs b/src/test/ui/impl-trait/negative-reasoning.rs
index 7f608cc99db..d173fe83fb7 100644
--- a/src/test/ui/impl-trait/negative-reasoning.rs
+++ b/src/test/ui/impl-trait/negative-reasoning.rs
@@ -1,9 +1,6 @@
 // Tests that we cannot assume that an opaque type does *not* implement some
 // other trait
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait OpaqueTrait {}
 impl<T> OpaqueTrait for T {}
diff --git a/src/test/ui/impl-trait/negative-reasoning.min_tait.stderr b/src/test/ui/impl-trait/negative-reasoning.stderr
index 5727a372ddb..e39a8e53f79 100644
--- a/src/test/ui/impl-trait/negative-reasoning.min_tait.stderr
+++ b/src/test/ui/impl-trait/negative-reasoning.stderr
@@ -1,5 +1,5 @@
 error[E0119]: conflicting implementations of trait `AnotherTrait` for type `D<impl OpaqueTrait>`
-  --> $DIR/negative-reasoning.rs:22:1
+  --> $DIR/negative-reasoning.rs:19:1
    |
 LL | impl<T: std::fmt::Debug> AnotherTrait for T {}
    | ------------------------------------------- first implementation here
diff --git a/src/test/ui/impl-trait/type-alias-generic-param.full_tait.stderr b/src/test/ui/impl-trait/type-alias-generic-param.full_tait.stderr
deleted file mode 100644
index 965e3e4887b..00000000000
--- a/src/test/ui/impl-trait/type-alias-generic-param.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/type-alias-generic-param.rs:8:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/impl-trait/type-alias-generic-param.rs b/src/test/ui/impl-trait/type-alias-generic-param.rs
index 733e10e56f8..3499b285926 100644
--- a/src/test/ui/impl-trait/type-alias-generic-param.rs
+++ b/src/test/ui/impl-trait/type-alias-generic-param.rs
@@ -3,10 +3,7 @@
 // types in 'item' position when generic parameters are involved
 //
 // run-pass
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait Meow {
     type MeowType;
@@ -14,7 +11,8 @@ trait Meow {
 }
 
 impl<T, I> Meow for I
-    where I: Iterator<Item = T>
+where
+    I: Iterator<Item = T>,
 {
     type MeowType = impl Iterator<Item = T>;
     fn meow(self) -> Self::MeowType {
diff --git a/src/test/ui/impl-trait/type-alias-impl-trait-in-fn-body.full_tait.stderr b/src/test/ui/impl-trait/type-alias-impl-trait-in-fn-body.full_tait.stderr
deleted file mode 100644
index ec939e5718a..00000000000
--- a/src/test/ui/impl-trait/type-alias-impl-trait-in-fn-body.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/type-alias-impl-trait-in-fn-body.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/impl-trait/type-alias-impl-trait-in-fn-body.rs b/src/test/ui/impl-trait/type-alias-impl-trait-in-fn-body.rs
index 32ca4af3043..91be4efd56a 100644
--- a/src/test/ui/impl-trait/type-alias-impl-trait-in-fn-body.rs
+++ b/src/test/ui/impl-trait/type-alias-impl-trait-in-fn-body.rs
@@ -1,9 +1,6 @@
 // build-pass (FIXME(62277): could be check-pass?)
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
diff --git a/src/test/ui/impl-trait/where-allowed.stderr b/src/test/ui/impl-trait/where-allowed.stderr
index 93a3de61ccf..7f11d30dbaa 100644
--- a/src/test/ui/impl-trait/where-allowed.stderr
+++ b/src/test/ui/impl-trait/where-allowed.stderr
@@ -23,7 +23,7 @@ LL |     type Out = impl Debug;
    |                ^^^^^^^^^^
    |
    = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
+   = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
 
 error[E0658]: `impl Trait` in type aliases is unstable
   --> $DIR/where-allowed.rs:154:23
@@ -32,7 +32,7 @@ LL | type InTypeAlias<R> = impl Debug;
    |                       ^^^^^^^^^^
    |
    = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
+   = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
 
 error[E0658]: `impl Trait` in type aliases is unstable
   --> $DIR/where-allowed.rs:157:39
@@ -41,7 +41,7 @@ LL | type InReturnInTypeAlias<R> = fn() -> impl Debug;
    |                                       ^^^^^^^^^^
    |
    = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
+   = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
 
 error[E0562]: `impl Trait` not allowed outside of function and method return types
   --> $DIR/where-allowed.rs:15:40
diff --git a/src/test/ui/issues/issue-60662.full_tait.stderr b/src/test/ui/issues/issue-60662.full_tait.stderr
deleted file mode 100644
index a448f85b762..00000000000
--- a/src/test/ui/issues/issue-60662.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-60662.rs:6:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/issues/issue-60662.min_tait.stdout b/src/test/ui/issues/issue-60662.min_tait.stdout
deleted file mode 100644
index d0db578f570..00000000000
--- a/src/test/ui/issues/issue-60662.min_tait.stdout
+++ /dev/null
@@ -1,15 +0,0 @@
-// check-pass
-// compile-flags: -Z unpretty=hir
-
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#[prelude_import]
-use ::std::prelude::rust_2015::*;
-#[macro_use]
-extern crate std;
-
-trait Animal { }
-
-fn main() {
-              pub type ServeFut = /*impl Trait*/;
-          }
diff --git a/src/test/ui/issues/issue-60662.rs b/src/test/ui/issues/issue-60662.rs
index 1320d2bbe93..b9faa668b80 100644
--- a/src/test/ui/issues/issue-60662.rs
+++ b/src/test/ui/issues/issue-60662.rs
@@ -1,13 +1,9 @@
 // check-pass
 // compile-flags: -Z unpretty=hir
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
-trait Animal {
-}
+trait Animal {}
 
 fn main() {
     pub type ServeFut = impl Animal;
diff --git a/src/test/ui/issues/issue-60662.full_tait.stdout b/src/test/ui/issues/issue-60662.stdout
index 9ee4434d559..14a49f20e6b 100644
--- a/src/test/ui/issues/issue-60662.full_tait.stdout
+++ b/src/test/ui/issues/issue-60662.stdout
@@ -1,8 +1,6 @@
 // check-pass
 // compile-flags: -Z unpretty=hir
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
 #![feature(type_alias_impl_trait)]
 #[prelude_import]
 use ::std::prelude::rust_2015::*;
diff --git a/src/test/ui/layout/debug.rs b/src/test/ui/layout/debug.rs
index 317955f0e39..299151df664 100644
--- a/src/test/ui/layout/debug.rs
+++ b/src/test/ui/layout/debug.rs
@@ -1,5 +1,5 @@
 // normalize-stderr-test "pref: Align \{\n *pow2: [1-3],\n *\}" -> "pref: $$PREF_ALIGN"
-#![feature(never_type, rustc_attrs, min_type_alias_impl_trait)]
+#![feature(never_type, rustc_attrs, type_alias_impl_trait)]
 #![crate_type = "lib"]
 
 #[rustc_layout(debug)]
diff --git a/src/test/ui/lint/inline-trait-and-foreign-items.full_tait.stderr b/src/test/ui/lint/inline-trait-and-foreign-items.full_tait.stderr
deleted file mode 100644
index 65b4631010f..00000000000
--- a/src/test/ui/lint/inline-trait-and-foreign-items.full_tait.stderr
+++ /dev/null
@@ -1,81 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/inline-trait-and-foreign-items.rs:4:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: `#[inline]` is ignored on constants
-  --> $DIR/inline-trait-and-foreign-items.rs:10:5
-   |
-LL |     #[inline]
-   |     ^^^^^^^^^
-   |
-note: the lint level is defined here
-  --> $DIR/inline-trait-and-foreign-items.rs:7:9
-   |
-LL | #![warn(unused_attributes)]
-   |         ^^^^^^^^^^^^^^^^^
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: see issue #65833 <https://github.com/rust-lang/rust/issues/65833> for more information
-
-error[E0518]: attribute should be applied to function or closure
-  --> $DIR/inline-trait-and-foreign-items.rs:14:5
-   |
-LL |     #[inline]
-   |     ^^^^^^^^^
-LL |     type T;
-   |     ------- not a function or closure
-
-warning: `#[inline]` is ignored on constants
-  --> $DIR/inline-trait-and-foreign-items.rs:21:5
-   |
-LL |     #[inline]
-   |     ^^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: see issue #65833 <https://github.com/rust-lang/rust/issues/65833> for more information
-
-error[E0518]: attribute should be applied to function or closure
-  --> $DIR/inline-trait-and-foreign-items.rs:25:5
-   |
-LL |     #[inline]
-   |     ^^^^^^^^^
-LL |     type T = Self;
-   |     -------------- not a function or closure
-
-error[E0518]: attribute should be applied to function or closure
-  --> $DIR/inline-trait-and-foreign-items.rs:28:5
-   |
-LL |     #[inline]
-   |     ^^^^^^^^^
-LL |     type U = impl Trait;
-   |     -------------------- not a function or closure
-
-error[E0518]: attribute should be applied to function or closure
-  --> $DIR/inline-trait-and-foreign-items.rs:33:5
-   |
-LL |     #[inline]
-   |     ^^^^^^^^^
-LL |     static X: u32;
-   |     -------------- not a function or closure
-
-error[E0518]: attribute should be applied to function or closure
-  --> $DIR/inline-trait-and-foreign-items.rs:36:5
-   |
-LL |     #[inline]
-   |     ^^^^^^^^^
-LL |     type T;
-   |     ------- not a function or closure
-
-error: could not find defining uses
-  --> $DIR/inline-trait-and-foreign-items.rs:29:14
-   |
-LL |     type U = impl Trait;
-   |              ^^^^^^^^^^
-
-error: aborting due to 6 previous errors; 3 warnings emitted
-
-For more information about this error, try `rustc --explain E0518`.
diff --git a/src/test/ui/lint/inline-trait-and-foreign-items.rs b/src/test/ui/lint/inline-trait-and-foreign-items.rs
index 3103cc9d31d..6321b3c76e4 100644
--- a/src/test/ui/lint/inline-trait-and-foreign-items.rs
+++ b/src/test/ui/lint/inline-trait-and-foreign-items.rs
@@ -1,8 +1,5 @@
 #![feature(extern_types)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 #![warn(unused_attributes)]
 
diff --git a/src/test/ui/lint/inline-trait-and-foreign-items.min_tait.stderr b/src/test/ui/lint/inline-trait-and-foreign-items.stderr
index b9f123905a7..6ac884c12ce 100644
--- a/src/test/ui/lint/inline-trait-and-foreign-items.min_tait.stderr
+++ b/src/test/ui/lint/inline-trait-and-foreign-items.stderr
@@ -1,11 +1,11 @@
 warning: `#[inline]` is ignored on constants
-  --> $DIR/inline-trait-and-foreign-items.rs:10:5
+  --> $DIR/inline-trait-and-foreign-items.rs:7:5
    |
 LL |     #[inline]
    |     ^^^^^^^^^
    |
 note: the lint level is defined here
-  --> $DIR/inline-trait-and-foreign-items.rs:7:9
+  --> $DIR/inline-trait-and-foreign-items.rs:4:9
    |
 LL | #![warn(unused_attributes)]
    |         ^^^^^^^^^^^^^^^^^
@@ -13,7 +13,7 @@ LL | #![warn(unused_attributes)]
    = note: see issue #65833 <https://github.com/rust-lang/rust/issues/65833> for more information
 
 error[E0518]: attribute should be applied to function or closure
-  --> $DIR/inline-trait-and-foreign-items.rs:14:5
+  --> $DIR/inline-trait-and-foreign-items.rs:11:5
    |
 LL |     #[inline]
    |     ^^^^^^^^^
@@ -21,7 +21,7 @@ LL |     type T;
    |     ------- not a function or closure
 
 warning: `#[inline]` is ignored on constants
-  --> $DIR/inline-trait-and-foreign-items.rs:21:5
+  --> $DIR/inline-trait-and-foreign-items.rs:18:5
    |
 LL |     #[inline]
    |     ^^^^^^^^^
@@ -30,7 +30,7 @@ LL |     #[inline]
    = note: see issue #65833 <https://github.com/rust-lang/rust/issues/65833> for more information
 
 error[E0518]: attribute should be applied to function or closure
-  --> $DIR/inline-trait-and-foreign-items.rs:25:5
+  --> $DIR/inline-trait-and-foreign-items.rs:22:5
    |
 LL |     #[inline]
    |     ^^^^^^^^^
@@ -38,7 +38,7 @@ LL |     type T = Self;
    |     -------------- not a function or closure
 
 error[E0518]: attribute should be applied to function or closure
-  --> $DIR/inline-trait-and-foreign-items.rs:28:5
+  --> $DIR/inline-trait-and-foreign-items.rs:25:5
    |
 LL |     #[inline]
    |     ^^^^^^^^^
@@ -46,7 +46,7 @@ LL |     type U = impl Trait;
    |     -------------------- not a function or closure
 
 error[E0518]: attribute should be applied to function or closure
-  --> $DIR/inline-trait-and-foreign-items.rs:33:5
+  --> $DIR/inline-trait-and-foreign-items.rs:30:5
    |
 LL |     #[inline]
    |     ^^^^^^^^^
@@ -54,7 +54,7 @@ LL |     static X: u32;
    |     -------------- not a function or closure
 
 error[E0518]: attribute should be applied to function or closure
-  --> $DIR/inline-trait-and-foreign-items.rs:36:5
+  --> $DIR/inline-trait-and-foreign-items.rs:33:5
    |
 LL |     #[inline]
    |     ^^^^^^^^^
@@ -62,7 +62,7 @@ LL |     type T;
    |     ------- not a function or closure
 
 error: could not find defining uses
-  --> $DIR/inline-trait-and-foreign-items.rs:29:14
+  --> $DIR/inline-trait-and-foreign-items.rs:26:14
    |
 LL |     type U = impl Trait;
    |              ^^^^^^^^^^
diff --git a/src/test/ui/lint/lint-ctypes-73249-2.full_tait.stderr b/src/test/ui/lint/lint-ctypes-73249-2.full_tait.stderr
deleted file mode 100644
index 619ca15839b..00000000000
--- a/src/test/ui/lint/lint-ctypes-73249-2.full_tait.stderr
+++ /dev/null
@@ -1,24 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/lint-ctypes-73249-2.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: `extern` block uses type `impl Baz`, which is not FFI-safe
-  --> $DIR/lint-ctypes-73249-2.rs:29:25
-   |
-LL |     pub fn lint_me() -> A<()>;
-   |                         ^^^^^ not FFI-safe
-   |
-note: the lint level is defined here
-  --> $DIR/lint-ctypes-73249-2.rs:5:9
-   |
-LL | #![deny(improper_ctypes)]
-   |         ^^^^^^^^^^^^^^^
-   = note: opaque types have no C equivalent
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/lint/lint-ctypes-73249-2.rs b/src/test/ui/lint/lint-ctypes-73249-2.rs
index f3313f89217..fe578f51b63 100644
--- a/src/test/ui/lint/lint-ctypes-73249-2.rs
+++ b/src/test/ui/lint/lint-ctypes-73249-2.rs
@@ -1,12 +1,9 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 #![deny(improper_ctypes)]
 
-pub trait Baz { }
+pub trait Baz {}
 
-impl Baz for () { }
+impl Baz for () {}
 
 type Qux = impl Baz;
 
diff --git a/src/test/ui/lint/lint-ctypes-73249-2.min_tait.stderr b/src/test/ui/lint/lint-ctypes-73249-2.stderr
index 479bd574473..36dbe3217d7 100644
--- a/src/test/ui/lint/lint-ctypes-73249-2.min_tait.stderr
+++ b/src/test/ui/lint/lint-ctypes-73249-2.stderr
@@ -1,11 +1,11 @@
 error: `extern` block uses type `impl Baz`, which is not FFI-safe
-  --> $DIR/lint-ctypes-73249-2.rs:29:25
+  --> $DIR/lint-ctypes-73249-2.rs:26:25
    |
 LL |     pub fn lint_me() -> A<()>;
    |                         ^^^^^ not FFI-safe
    |
 note: the lint level is defined here
-  --> $DIR/lint-ctypes-73249-2.rs:5:9
+  --> $DIR/lint-ctypes-73249-2.rs:2:9
    |
 LL | #![deny(improper_ctypes)]
    |         ^^^^^^^^^^^^^^^
diff --git a/src/test/ui/lint/lint-ctypes-73249-3.full_tait.stderr b/src/test/ui/lint/lint-ctypes-73249-3.full_tait.stderr
deleted file mode 100644
index af0f26a9f43..00000000000
--- a/src/test/ui/lint/lint-ctypes-73249-3.full_tait.stderr
+++ /dev/null
@@ -1,24 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/lint-ctypes-73249-3.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: `extern` block uses type `impl Baz`, which is not FFI-safe
-  --> $DIR/lint-ctypes-73249-3.rs:21:25
-   |
-LL |     pub fn lint_me() -> A;
-   |                         ^ not FFI-safe
-   |
-note: the lint level is defined here
-  --> $DIR/lint-ctypes-73249-3.rs:5:9
-   |
-LL | #![deny(improper_ctypes)]
-   |         ^^^^^^^^^^^^^^^
-   = note: opaque types have no C equivalent
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/lint/lint-ctypes-73249-3.rs b/src/test/ui/lint/lint-ctypes-73249-3.rs
index 966c7d5ce3c..ec12de00739 100644
--- a/src/test/ui/lint/lint-ctypes-73249-3.rs
+++ b/src/test/ui/lint/lint-ctypes-73249-3.rs
@@ -1,16 +1,15 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 #![deny(improper_ctypes)]
 
-pub trait Baz { }
+pub trait Baz {}
 
-impl Baz for u32 { }
+impl Baz for u32 {}
 
 type Qux = impl Baz;
 
-fn assign() -> Qux { 3 }
+fn assign() -> Qux {
+    3
+}
 
 #[repr(C)]
 pub struct A {
diff --git a/src/test/ui/lint/lint-ctypes-73249-3.min_tait.stderr b/src/test/ui/lint/lint-ctypes-73249-3.stderr
index 880581ff05d..e987ec90228 100644
--- a/src/test/ui/lint/lint-ctypes-73249-3.min_tait.stderr
+++ b/src/test/ui/lint/lint-ctypes-73249-3.stderr
@@ -1,11 +1,11 @@
 error: `extern` block uses type `impl Baz`, which is not FFI-safe
-  --> $DIR/lint-ctypes-73249-3.rs:21:25
+  --> $DIR/lint-ctypes-73249-3.rs:20:25
    |
 LL |     pub fn lint_me() -> A;
    |                         ^ not FFI-safe
    |
 note: the lint level is defined here
-  --> $DIR/lint-ctypes-73249-3.rs:5:9
+  --> $DIR/lint-ctypes-73249-3.rs:2:9
    |
 LL | #![deny(improper_ctypes)]
    |         ^^^^^^^^^^^^^^^
diff --git a/src/test/ui/lint/lint-ctypes-73249-5.full_tait.stderr b/src/test/ui/lint/lint-ctypes-73249-5.full_tait.stderr
deleted file mode 100644
index b80084fce06..00000000000
--- a/src/test/ui/lint/lint-ctypes-73249-5.full_tait.stderr
+++ /dev/null
@@ -1,24 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/lint-ctypes-73249-5.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: `extern` block uses type `impl Baz`, which is not FFI-safe
-  --> $DIR/lint-ctypes-73249-5.rs:21:25
-   |
-LL |     pub fn lint_me() -> A;
-   |                         ^ not FFI-safe
-   |
-note: the lint level is defined here
-  --> $DIR/lint-ctypes-73249-5.rs:5:9
-   |
-LL | #![deny(improper_ctypes)]
-   |         ^^^^^^^^^^^^^^^
-   = note: opaque types have no C equivalent
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/lint/lint-ctypes-73249-5.rs b/src/test/ui/lint/lint-ctypes-73249-5.rs
index 81979a9b6e6..58c2d7a501a 100644
--- a/src/test/ui/lint/lint-ctypes-73249-5.rs
+++ b/src/test/ui/lint/lint-ctypes-73249-5.rs
@@ -1,16 +1,15 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 #![deny(improper_ctypes)]
 
-pub trait Baz { }
+pub trait Baz {}
 
-impl Baz for u32 { }
+impl Baz for u32 {}
 
 type Qux = impl Baz;
 
-fn assign() -> Qux { 3 }
+fn assign() -> Qux {
+    3
+}
 
 #[repr(transparent)]
 pub struct A {
diff --git a/src/test/ui/lint/lint-ctypes-73249-5.min_tait.stderr b/src/test/ui/lint/lint-ctypes-73249-5.stderr
index f42549d9096..749714c7df8 100644
--- a/src/test/ui/lint/lint-ctypes-73249-5.min_tait.stderr
+++ b/src/test/ui/lint/lint-ctypes-73249-5.stderr
@@ -1,11 +1,11 @@
 error: `extern` block uses type `impl Baz`, which is not FFI-safe
-  --> $DIR/lint-ctypes-73249-5.rs:21:25
+  --> $DIR/lint-ctypes-73249-5.rs:20:25
    |
 LL |     pub fn lint_me() -> A;
    |                         ^ not FFI-safe
    |
 note: the lint level is defined here
-  --> $DIR/lint-ctypes-73249-5.rs:5:9
+  --> $DIR/lint-ctypes-73249-5.rs:2:9
    |
 LL | #![deny(improper_ctypes)]
    |         ^^^^^^^^^^^^^^^
diff --git a/src/test/ui/lint/lint-ctypes-73251-1.full_tait.stderr b/src/test/ui/lint/lint-ctypes-73251-1.full_tait.stderr
deleted file mode 100644
index 5610230380b..00000000000
--- a/src/test/ui/lint/lint-ctypes-73251-1.full_tait.stderr
+++ /dev/null
@@ -1,24 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/lint-ctypes-73251-1.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: `extern` block uses type `impl Baz`, which is not FFI-safe
-  --> $DIR/lint-ctypes-73251-1.rs:24:25
-   |
-LL |     pub fn lint_me() -> <u32 as Foo>::Assoc;
-   |                         ^^^^^^^^^^^^^^^^^^^ not FFI-safe
-   |
-note: the lint level is defined here
-  --> $DIR/lint-ctypes-73251-1.rs:5:9
-   |
-LL | #![deny(improper_ctypes)]
-   |         ^^^^^^^^^^^^^^^
-   = note: opaque types have no C equivalent
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/lint/lint-ctypes-73251-1.rs b/src/test/ui/lint/lint-ctypes-73251-1.rs
index 3f15a2fb42c..dc4c7efd7ef 100644
--- a/src/test/ui/lint/lint-ctypes-73251-1.rs
+++ b/src/test/ui/lint/lint-ctypes-73251-1.rs
@@ -1,12 +1,9 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 #![deny(improper_ctypes)]
 
-pub trait Baz { }
+pub trait Baz {}
 
-impl Baz for u32 { }
+impl Baz for u32 {}
 
 type Qux = impl Baz;
 
@@ -18,7 +15,9 @@ impl Foo for u32 {
     type Assoc = Qux;
 }
 
-fn assign() -> Qux { 1 }
+fn assign() -> Qux {
+    1
+}
 
 extern "C" {
     pub fn lint_me() -> <u32 as Foo>::Assoc; //~ ERROR: uses type `impl Baz`
diff --git a/src/test/ui/lint/lint-ctypes-73251-1.min_tait.stderr b/src/test/ui/lint/lint-ctypes-73251-1.stderr
index 5b00fc4cce6..505ccd5a930 100644
--- a/src/test/ui/lint/lint-ctypes-73251-1.min_tait.stderr
+++ b/src/test/ui/lint/lint-ctypes-73251-1.stderr
@@ -1,11 +1,11 @@
 error: `extern` block uses type `impl Baz`, which is not FFI-safe
-  --> $DIR/lint-ctypes-73251-1.rs:24:25
+  --> $DIR/lint-ctypes-73251-1.rs:23:25
    |
 LL |     pub fn lint_me() -> <u32 as Foo>::Assoc;
    |                         ^^^^^^^^^^^^^^^^^^^ not FFI-safe
    |
 note: the lint level is defined here
-  --> $DIR/lint-ctypes-73251-1.rs:5:9
+  --> $DIR/lint-ctypes-73251-1.rs:2:9
    |
 LL | #![deny(improper_ctypes)]
    |         ^^^^^^^^^^^^^^^
diff --git a/src/test/ui/lint/lint-ctypes-73251-2.full_tait.stderr b/src/test/ui/lint/lint-ctypes-73251-2.full_tait.stderr
deleted file mode 100644
index 19911264a36..00000000000
--- a/src/test/ui/lint/lint-ctypes-73251-2.full_tait.stderr
+++ /dev/null
@@ -1,24 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/lint-ctypes-73251-2.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: `extern` block uses type `impl TraitA`, which is not FFI-safe
-  --> $DIR/lint-ctypes-73251-2.rs:32:25
-   |
-LL |     pub fn lint_me() -> <AliasB as TraitB>::Assoc;
-   |                         ^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
-   |
-note: the lint level is defined here
-  --> $DIR/lint-ctypes-73251-2.rs:5:9
-   |
-LL | #![deny(improper_ctypes)]
-   |         ^^^^^^^^^^^^^^^
-   = note: opaque types have no C equivalent
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/lint/lint-ctypes-73251-2.rs b/src/test/ui/lint/lint-ctypes-73251-2.rs
index 888671daca5..79effd054b0 100644
--- a/src/test/ui/lint/lint-ctypes-73251-2.rs
+++ b/src/test/ui/lint/lint-ctypes-73251-2.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 #![deny(improper_ctypes)]
 
 pub trait TraitA {
@@ -16,7 +13,10 @@ pub trait TraitB {
     type Assoc;
 }
 
-impl<T> TraitB for T where T: TraitA {
+impl<T> TraitB for T
+where
+    T: TraitA,
+{
     type Assoc = <T as TraitA>::Assoc;
 }
 
@@ -24,9 +24,13 @@ type AliasA = impl TraitA<Assoc = u32>;
 
 type AliasB = impl TraitB<Assoc = AliasA>;
 
-fn use_of_a() -> AliasA { 3 }
+fn use_of_a() -> AliasA {
+    3
+}
 
-fn use_of_b() -> AliasB { 3 }
+fn use_of_b() -> AliasB {
+    3
+}
 
 extern "C" {
     pub fn lint_me() -> <AliasB as TraitB>::Assoc; //~ ERROR: uses type `impl TraitA`
diff --git a/src/test/ui/lint/lint-ctypes-73251-2.min_tait.stderr b/src/test/ui/lint/lint-ctypes-73251-2.stderr
index 4130ee7b4cb..94ee95d422e 100644
--- a/src/test/ui/lint/lint-ctypes-73251-2.min_tait.stderr
+++ b/src/test/ui/lint/lint-ctypes-73251-2.stderr
@@ -1,11 +1,11 @@
 error: `extern` block uses type `impl TraitA`, which is not FFI-safe
-  --> $DIR/lint-ctypes-73251-2.rs:32:25
+  --> $DIR/lint-ctypes-73251-2.rs:36:25
    |
 LL |     pub fn lint_me() -> <AliasB as TraitB>::Assoc;
    |                         ^^^^^^^^^^^^^^^^^^^^^^^^^ not FFI-safe
    |
 note: the lint level is defined here
-  --> $DIR/lint-ctypes-73251-2.rs:5:9
+  --> $DIR/lint-ctypes-73251-2.rs:2:9
    |
 LL | #![deny(improper_ctypes)]
    |         ^^^^^^^^^^^^^^^
diff --git a/src/test/ui/lint/lint-ctypes-73251.full_tait.stderr b/src/test/ui/lint/lint-ctypes-73251.full_tait.stderr
deleted file mode 100644
index 577cf6cf545..00000000000
--- a/src/test/ui/lint/lint-ctypes-73251.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/lint-ctypes-73251.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/lint/lint-ctypes-73251.rs b/src/test/ui/lint/lint-ctypes-73251.rs
index 36e541612d1..ebc2ca77b67 100644
--- a/src/test/ui/lint/lint-ctypes-73251.rs
+++ b/src/test/ui/lint/lint-ctypes-73251.rs
@@ -1,9 +1,6 @@
 // check-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 #![deny(improper_ctypes)]
 
 pub trait Foo {
diff --git a/src/test/ui/lint/opaque-ty-ffi-unsafe.full_tait.stderr b/src/test/ui/lint/opaque-ty-ffi-unsafe.full_tait.stderr
deleted file mode 100644
index 5433d6e6ae2..00000000000
--- a/src/test/ui/lint/opaque-ty-ffi-unsafe.full_tait.stderr
+++ /dev/null
@@ -1,24 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/opaque-ty-ffi-unsafe.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: `extern` block uses type `impl Fn<()>`, which is not FFI-safe
-  --> $DIR/opaque-ty-ffi-unsafe.rs:14:17
-   |
-LL |     pub fn a(_: A);
-   |                 ^ not FFI-safe
-   |
-note: the lint level is defined here
-  --> $DIR/opaque-ty-ffi-unsafe.rs:5:9
-   |
-LL | #![deny(improper_ctypes)]
-   |         ^^^^^^^^^^^^^^^
-   = note: opaque types have no C equivalent
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/lint/opaque-ty-ffi-unsafe.rs b/src/test/ui/lint/opaque-ty-ffi-unsafe.rs
index 0e9df919552..fadb7471952 100644
--- a/src/test/ui/lint/opaque-ty-ffi-unsafe.rs
+++ b/src/test/ui/lint/opaque-ty-ffi-unsafe.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 #![deny(improper_ctypes)]
 
 type A = impl Fn();
@@ -12,7 +9,7 @@ pub fn ret_closure() -> A {
 
 extern "C" {
     pub fn a(_: A);
-//~^ ERROR `extern` block uses type `impl Fn<()>`, which is not FFI-safe
+    //~^ ERROR `extern` block uses type `impl Fn<()>`, which is not FFI-safe
 }
 
 fn main() {}
diff --git a/src/test/ui/lint/opaque-ty-ffi-unsafe.min_tait.stderr b/src/test/ui/lint/opaque-ty-ffi-unsafe.stderr
index 2f20912d2a6..9d46f6d936e 100644
--- a/src/test/ui/lint/opaque-ty-ffi-unsafe.min_tait.stderr
+++ b/src/test/ui/lint/opaque-ty-ffi-unsafe.stderr
@@ -1,11 +1,11 @@
 error: `extern` block uses type `impl Fn<()>`, which is not FFI-safe
-  --> $DIR/opaque-ty-ffi-unsafe.rs:14:17
+  --> $DIR/opaque-ty-ffi-unsafe.rs:11:17
    |
 LL |     pub fn a(_: A);
    |                 ^ not FFI-safe
    |
 note: the lint level is defined here
-  --> $DIR/opaque-ty-ffi-unsafe.rs:5:9
+  --> $DIR/opaque-ty-ffi-unsafe.rs:2:9
    |
 LL | #![deny(improper_ctypes)]
    |         ^^^^^^^^^^^^^^^
diff --git a/src/test/ui/malformed/malformed-plugin-3.stderr b/src/test/ui/malformed/malformed-plugin-3.stderr
index 11abdb16e0b..64cb429ea74 100644
--- a/src/test/ui/malformed/malformed-plugin-3.stderr
+++ b/src/test/ui/malformed/malformed-plugin-3.stderr
@@ -14,3 +14,4 @@ LL | #![plugin(foo="bleh")]
 
 error: aborting due to previous error; 1 warning emitted
 
+For more information about this error, try `rustc --explain E0498`.
diff --git a/src/test/ui/mir/issue-75053.full_tait.stderr b/src/test/ui/mir/issue-75053.full_tait.stderr
deleted file mode 100644
index 543d15fadc6..00000000000
--- a/src/test/ui/mir/issue-75053.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-75053.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: fatal error triggered by #[rustc_error]
-  --> $DIR/issue-75053.rs:49:1
-   |
-LL | fn main() {
-   | ^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/mir/issue-75053.rs b/src/test/ui/mir/issue-75053.rs
index b71f84dd9c2..cb56eaa0b13 100644
--- a/src/test/ui/mir/issue-75053.rs
+++ b/src/test/ui/mir/issue-75053.rs
@@ -1,9 +1,6 @@
 // compile-flags: -Z mir-opt-level=3
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait, rustc_attrs)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait, rustc_attrs)]
 
 use std::marker::PhantomData;
 
diff --git a/src/test/ui/mir/issue-75053.min_tait.stderr b/src/test/ui/mir/issue-75053.stderr
index c533275c99a..64e59e6c448 100644
--- a/src/test/ui/mir/issue-75053.min_tait.stderr
+++ b/src/test/ui/mir/issue-75053.stderr
@@ -1,5 +1,5 @@
 error: fatal error triggered by #[rustc_error]
-  --> $DIR/issue-75053.rs:49:1
+  --> $DIR/issue-75053.rs:46:1
    |
 LL | fn main() {
    | ^^^^^^^^^
diff --git a/src/test/ui/nll/issue-51191.rs b/src/test/ui/nll/issue-51191.rs
index 747bfe3a8a5..836587d93b8 100644
--- a/src/test/ui/nll/issue-51191.rs
+++ b/src/test/ui/nll/issue-51191.rs
@@ -3,11 +3,13 @@ struct Struct;
 impl Struct {
     fn bar(self: &mut Self) {
         //~^ WARN function cannot return without recursing
+        //~^^ HELP a `loop` may express intention better if this is on purpose
         (&mut self).bar();
         //~^ ERROR cannot borrow `self` as mutable, as it is not declared as mutable [E0596]
+        //~^^ HELP try removing `&mut` here
     }
 
-    fn imm(self) {
+    fn imm(self) { //~ HELP consider changing this to be mutable
         (&mut self).bar();
         //~^ ERROR cannot borrow `self` as mutable, as it is not declared as mutable [E0596]
     }
@@ -25,7 +27,8 @@ impl Struct {
     fn mtblref(&mut self) {
         (&mut self).bar();
         //~^ ERROR cannot borrow `self` as mutable, as it is not declared as mutable [E0596]
+        //~^^ HELP try removing `&mut` here
     }
 }
 
-fn main () {}
+fn main() {}
diff --git a/src/test/ui/nll/issue-51191.stderr b/src/test/ui/nll/issue-51191.stderr
index 4e2e4c20a02..450993425e2 100644
--- a/src/test/ui/nll/issue-51191.stderr
+++ b/src/test/ui/nll/issue-51191.stderr
@@ -3,7 +3,7 @@ warning: function cannot return without recursing
    |
 LL |     fn bar(self: &mut Self) {
    |     ^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
-LL |
+...
 LL |         (&mut self).bar();
    |         ----------------- recursive call site
    |
@@ -11,16 +11,16 @@ LL |         (&mut self).bar();
    = help: a `loop` may express intention better if this is on purpose
 
 error[E0596]: cannot borrow `self` as mutable, as it is not declared as mutable
-  --> $DIR/issue-51191.rs:6:9
+  --> $DIR/issue-51191.rs:7:9
    |
 LL |         (&mut self).bar();
    |         ^^^^^^^^^^^
    |         |
    |         cannot borrow as mutable
-   |         try removing `&mut` here
+   |         help: try removing `&mut` here
 
 error[E0596]: cannot borrow `self` as mutable, as it is not declared as mutable
-  --> $DIR/issue-51191.rs:11:9
+  --> $DIR/issue-51191.rs:13:9
    |
 LL |     fn imm(self) {
    |            ---- help: consider changing this to be mutable: `mut self`
@@ -28,25 +28,25 @@ LL |         (&mut self).bar();
    |         ^^^^^^^^^^^ cannot borrow as mutable
 
 error[E0596]: cannot borrow `self` as mutable, as it is not declared as mutable
-  --> $DIR/issue-51191.rs:20:9
+  --> $DIR/issue-51191.rs:22:9
    |
 LL |         (&mut self).bar();
    |         ^^^^^^^^^^^ cannot borrow as mutable
 
 error[E0596]: cannot borrow data in a `&` reference as mutable
-  --> $DIR/issue-51191.rs:20:9
+  --> $DIR/issue-51191.rs:22:9
    |
 LL |         (&mut self).bar();
    |         ^^^^^^^^^^^ cannot borrow as mutable
 
 error[E0596]: cannot borrow `self` as mutable, as it is not declared as mutable
-  --> $DIR/issue-51191.rs:26:9
+  --> $DIR/issue-51191.rs:28:9
    |
 LL |         (&mut self).bar();
    |         ^^^^^^^^^^^
    |         |
    |         cannot borrow as mutable
-   |         try removing `&mut` here
+   |         help: try removing `&mut` here
 
 error: aborting due to 5 previous errors; 1 warning emitted
 
diff --git a/src/test/ui/privacy/private-in-public-assoc-ty.full_tait.stderr b/src/test/ui/privacy/private-in-public-assoc-ty.full_tait.stderr
deleted file mode 100644
index a74c7c93a2e..00000000000
--- a/src/test/ui/privacy/private-in-public-assoc-ty.full_tait.stderr
+++ /dev/null
@@ -1,77 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/private-in-public-assoc-ty.rs:7:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0446]: private type `Priv` in public interface
-  --> $DIR/private-in-public-assoc-ty.rs:20:9
-   |
-LL |     struct Priv;
-   |     ------------ `Priv` declared as private
-...
-LL |         type A = Priv;
-   |         ^^^^^^^^^^^^^^ can't leak private type
-
-warning: private trait `PrivTr` in public interface (error E0445)
-  --> $DIR/private-in-public-assoc-ty.rs:27:9
-   |
-LL |         type Alias1: PrivTr;
-   |         ^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(private_in_public)]` on by default
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
-
-warning: private type `Priv` in public interface (error E0446)
-  --> $DIR/private-in-public-assoc-ty.rs:30:9
-   |
-LL |         type Alias2: PubTrAux1<Priv> = u8;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
-
-warning: private type `Priv` in public interface (error E0446)
-  --> $DIR/private-in-public-assoc-ty.rs:33:9
-   |
-LL |         type Alias3: PubTrAux2<A = Priv> = u8;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
-   = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
-
-error[E0446]: private type `Priv` in public interface
-  --> $DIR/private-in-public-assoc-ty.rs:37:9
-   |
-LL |     struct Priv;
-   |     ------------ `Priv` declared as private
-...
-LL |         type Alias4 = Priv;
-   |         ^^^^^^^^^^^^^^^^^^^ can't leak private type
-
-error[E0446]: private type `Priv` in public interface
-  --> $DIR/private-in-public-assoc-ty.rs:44:9
-   |
-LL |     struct Priv;
-   |     ------------ `Priv` declared as private
-...
-LL |         type Alias1 = Priv;
-   |         ^^^^^^^^^^^^^^^^^^^ can't leak private type
-
-error[E0445]: private trait `PrivTr` in public interface
-  --> $DIR/private-in-public-assoc-ty.rs:47:9
-   |
-LL |     trait PrivTr {}
-   |     ------------ `PrivTr` declared as private
-...
-LL |         type Exist = impl PrivTr;
-   |         ^^^^^^^^^^^^^^^^^^^^^^^^^ can't leak private trait
-
-error: aborting due to 4 previous errors; 4 warnings emitted
-
-Some errors have detailed explanations: E0445, E0446.
-For more information about an error, try `rustc --explain E0445`.
diff --git a/src/test/ui/privacy/private-in-public-assoc-ty.rs b/src/test/ui/privacy/private-in-public-assoc-ty.rs
index f8fb5659430..fba72c13170 100644
--- a/src/test/ui/privacy/private-in-public-assoc-ty.rs
+++ b/src/test/ui/privacy/private-in-public-assoc-ty.rs
@@ -2,10 +2,7 @@
 // This test also ensures that the checks are performed even inside private modules.
 
 #![feature(associated_type_defaults)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 mod m {
     struct Priv;
diff --git a/src/test/ui/privacy/private-in-public-assoc-ty.min_tait.stderr b/src/test/ui/privacy/private-in-public-assoc-ty.stderr
index 36230ffd04b..ba62a228b09 100644
--- a/src/test/ui/privacy/private-in-public-assoc-ty.min_tait.stderr
+++ b/src/test/ui/privacy/private-in-public-assoc-ty.stderr
@@ -1,5 +1,5 @@
 error[E0446]: private type `Priv` in public interface
-  --> $DIR/private-in-public-assoc-ty.rs:20:9
+  --> $DIR/private-in-public-assoc-ty.rs:17:9
    |
 LL |     struct Priv;
    |     ------------ `Priv` declared as private
@@ -8,7 +8,7 @@ LL |         type A = Priv;
    |         ^^^^^^^^^^^^^^ can't leak private type
 
 warning: private trait `PrivTr` in public interface (error E0445)
-  --> $DIR/private-in-public-assoc-ty.rs:27:9
+  --> $DIR/private-in-public-assoc-ty.rs:24:9
    |
 LL |         type Alias1: PrivTr;
    |         ^^^^^^^^^^^^^^^^^^^^
@@ -18,7 +18,7 @@ LL |         type Alias1: PrivTr;
    = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
 
 warning: private type `Priv` in public interface (error E0446)
-  --> $DIR/private-in-public-assoc-ty.rs:30:9
+  --> $DIR/private-in-public-assoc-ty.rs:27:9
    |
 LL |         type Alias2: PubTrAux1<Priv> = u8;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -27,7 +27,7 @@ LL |         type Alias2: PubTrAux1<Priv> = u8;
    = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
 
 warning: private type `Priv` in public interface (error E0446)
-  --> $DIR/private-in-public-assoc-ty.rs:33:9
+  --> $DIR/private-in-public-assoc-ty.rs:30:9
    |
 LL |         type Alias3: PubTrAux2<A = Priv> = u8;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -36,7 +36,7 @@ LL |         type Alias3: PubTrAux2<A = Priv> = u8;
    = note: for more information, see issue #34537 <https://github.com/rust-lang/rust/issues/34537>
 
 error[E0446]: private type `Priv` in public interface
-  --> $DIR/private-in-public-assoc-ty.rs:37:9
+  --> $DIR/private-in-public-assoc-ty.rs:34:9
    |
 LL |     struct Priv;
    |     ------------ `Priv` declared as private
@@ -45,7 +45,7 @@ LL |         type Alias4 = Priv;
    |         ^^^^^^^^^^^^^^^^^^^ can't leak private type
 
 error[E0446]: private type `Priv` in public interface
-  --> $DIR/private-in-public-assoc-ty.rs:44:9
+  --> $DIR/private-in-public-assoc-ty.rs:41:9
    |
 LL |     struct Priv;
    |     ------------ `Priv` declared as private
@@ -54,7 +54,7 @@ LL |         type Alias1 = Priv;
    |         ^^^^^^^^^^^^^^^^^^^ can't leak private type
 
 error[E0445]: private trait `PrivTr` in public interface
-  --> $DIR/private-in-public-assoc-ty.rs:47:9
+  --> $DIR/private-in-public-assoc-ty.rs:44:9
    |
 LL |     trait PrivTr {}
    |     ------------ `PrivTr` declared as private
diff --git a/src/test/ui/privacy/private-in-public-type-alias-impl-trait.full_tait.stderr b/src/test/ui/privacy/private-in-public-type-alias-impl-trait.full_tait.stderr
deleted file mode 100644
index c419c7ee4d4..00000000000
--- a/src/test/ui/privacy/private-in-public-type-alias-impl-trait.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/private-in-public-type-alias-impl-trait.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/privacy/private-in-public-type-alias-impl-trait.rs b/src/test/ui/privacy/private-in-public-type-alias-impl-trait.rs
index 8443631253f..c7df31529bc 100644
--- a/src/test/ui/privacy/private-in-public-type-alias-impl-trait.rs
+++ b/src/test/ui/privacy/private-in-public-type-alias-impl-trait.rs
@@ -1,9 +1,6 @@
 // build-pass (FIXME(62277): could be check-pass?)
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 #![deny(private_in_public)]
 
 pub type Pub = impl Default;
@@ -22,7 +19,9 @@ pub trait Trait {
 
 impl Trait for u8 {
     type Pub = impl Default;
-    fn method() -> Self::Pub { Priv }
+    fn method() -> Self::Pub {
+        Priv
+    }
 }
 
 fn main() {}
diff --git a/src/test/ui/save-analysis/issue-68621.full_tait.stderr b/src/test/ui/save-analysis/issue-68621.full_tait.stderr
deleted file mode 100644
index 193aed2615c..00000000000
--- a/src/test/ui/save-analysis/issue-68621.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-68621.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: could not find defining uses
-  --> $DIR/issue-68621.rs:17:19
-   |
-LL |     type Future = impl Trait;
-   |                   ^^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/save-analysis/issue-68621.rs b/src/test/ui/save-analysis/issue-68621.rs
index 1f4a9080cc9..96af085c5b6 100644
--- a/src/test/ui/save-analysis/issue-68621.rs
+++ b/src/test/ui/save-analysis/issue-68621.rs
@@ -1,9 +1,6 @@
 // compile-flags: -Zsave-analysis
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait Trait {}
 
diff --git a/src/test/ui/save-analysis/issue-68621.min_tait.stderr b/src/test/ui/save-analysis/issue-68621.stderr
index cccfb3de8fb..3af6d0a3e07 100644
--- a/src/test/ui/save-analysis/issue-68621.min_tait.stderr
+++ b/src/test/ui/save-analysis/issue-68621.stderr
@@ -1,5 +1,5 @@
 error: could not find defining uses
-  --> $DIR/issue-68621.rs:17:19
+  --> $DIR/issue-68621.rs:14:19
    |
 LL |     type Future = impl Trait;
    |                   ^^^^^^^^^^
diff --git a/src/test/ui/traits/alias/issue-83613.rs b/src/test/ui/traits/alias/issue-83613.rs
index 146920ac685..0013d5d66f1 100644
--- a/src/test/ui/traits/alias/issue-83613.rs
+++ b/src/test/ui/traits/alias/issue-83613.rs
@@ -1,4 +1,4 @@
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 trait OpaqueTrait {}
 impl<T> OpaqueTrait for T {}
 type OpaqueType = impl OpaqueTrait;
diff --git a/src/test/ui/type-alias-impl-trait/assoc-type-const.full_tait.stderr b/src/test/ui/type-alias-impl-trait/assoc-type-const.full_tait.stderr
deleted file mode 100644
index 7b43d1d86bc..00000000000
--- a/src/test/ui/type-alias-impl-trait/assoc-type-const.full_tait.stderr
+++ /dev/null
@@ -1,19 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/assoc-type-const.rs:7:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/assoc-type-const.rs:9:12
-   |
-LL | #![feature(const_generics)]
-   |            ^^^^^^^^^^^^^^
-   |
-   = note: see issue #44580 <https://github.com/rust-lang/rust/issues/44580> for more information
-
-warning: 2 warnings emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/assoc-type-const.rs b/src/test/ui/type-alias-impl-trait/assoc-type-const.rs
index be065c3b6be..d53f562e99f 100644
--- a/src/test/ui/type-alias-impl-trait/assoc-type-const.rs
+++ b/src/test/ui/type-alias-impl-trait/assoc-type-const.rs
@@ -2,10 +2,7 @@
 // const generics in an associated opaque type
 // check-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 #![feature(const_generics)]
 //~^ WARN the feature `const_generics` is incomplete
 
diff --git a/src/test/ui/type-alias-impl-trait/assoc-type-const.min_tait.stderr b/src/test/ui/type-alias-impl-trait/assoc-type-const.stderr
index d4b9132cc92..e0c1b023861 100644
--- a/src/test/ui/type-alias-impl-trait/assoc-type-const.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/assoc-type-const.stderr
@@ -1,5 +1,5 @@
 warning: the feature `const_generics` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/assoc-type-const.rs:9:12
+  --> $DIR/assoc-type-const.rs:6:12
    |
 LL | #![feature(const_generics)]
    |            ^^^^^^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.full_tait.stderr b/src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.full_tait.stderr
deleted file mode 100644
index 01263cde8bb..00000000000
--- a/src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.full_tait.stderr
+++ /dev/null
@@ -1,18 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/assoc-type-lifetime-unconstrained.rs:6:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/assoc-type-lifetime-unconstrained.rs:20:6
-   |
-LL | impl<'a, I> UnwrapItemsExt for I {
-   |      ^^ unconstrained lifetime parameter
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0207`.
diff --git a/src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.rs b/src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.rs
index 39cc75e688b..3f34b00ec77 100644
--- a/src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.rs
+++ b/src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.rs
@@ -1,10 +1,7 @@
 // Tests that we don't allow unconstrained lifetime parameters in impls when
 // the lifetime is used in an associated opaque type.
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait UnwrapItemsExt {
     type Iter;
diff --git a/src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.min_tait.stderr b/src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.stderr
index afcdab5f479..e594dc577b1 100644
--- a/src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/assoc-type-lifetime-unconstrained.stderr
@@ -1,5 +1,5 @@
 error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/assoc-type-lifetime-unconstrained.rs:20:6
+  --> $DIR/assoc-type-lifetime-unconstrained.rs:17:6
    |
 LL | impl<'a, I> UnwrapItemsExt for I {
    |      ^^ unconstrained lifetime parameter
diff --git a/src/test/ui/type-alias-impl-trait/assoc-type-lifetime.full_tait.stderr b/src/test/ui/type-alias-impl-trait/assoc-type-lifetime.full_tait.stderr
deleted file mode 100644
index 31afbf14e65..00000000000
--- a/src/test/ui/type-alias-impl-trait/assoc-type-lifetime.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/assoc-type-lifetime.rs:7:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/assoc-type-lifetime.rs b/src/test/ui/type-alias-impl-trait/assoc-type-lifetime.rs
index ebbdbb67dbe..39f785d8cc5 100644
--- a/src/test/ui/type-alias-impl-trait/assoc-type-lifetime.rs
+++ b/src/test/ui/type-alias-impl-trait/assoc-type-lifetime.rs
@@ -2,10 +2,7 @@
 // lifetimes are used in an associated opaque type
 // check-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait UnwrapItemsExt<'a> {
     type Iter;
diff --git a/src/test/ui/type-alias-impl-trait/associated-type-alias-impl-trait.full_tait.stderr b/src/test/ui/type-alias-impl-trait/associated-type-alias-impl-trait.full_tait.stderr
deleted file mode 100644
index 2c48d815e0d..00000000000
--- a/src/test/ui/type-alias-impl-trait/associated-type-alias-impl-trait.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/associated-type-alias-impl-trait.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/associated-type-alias-impl-trait.rs b/src/test/ui/type-alias-impl-trait/associated-type-alias-impl-trait.rs
index 8d2b1826790..42f07d49ffe 100644
--- a/src/test/ui/type-alias-impl-trait/associated-type-alias-impl-trait.rs
+++ b/src/test/ui/type-alias-impl-trait/associated-type-alias-impl-trait.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 // build-pass (FIXME(62277): could be check-pass?)
 
 trait Bar {}
diff --git a/src/test/ui/type-alias-impl-trait/auxiliary/cross_crate_ice.rs b/src/test/ui/type-alias-impl-trait/auxiliary/cross_crate_ice.rs
index 94e1fa73de8..e7bca2231de 100644
--- a/src/test/ui/type-alias-impl-trait/auxiliary/cross_crate_ice.rs
+++ b/src/test/ui/type-alias-impl-trait/auxiliary/cross_crate_ice.rs
@@ -1,10 +1,7 @@
 // Crate that exports an opaque `impl Trait` type. Used for testing cross-crate.
 
 #![crate_type = "rlib"]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 pub type Foo = impl std::fmt::Debug;
 
diff --git a/src/test/ui/type-alias-impl-trait/auxiliary/cross_crate_ice2.rs b/src/test/ui/type-alias-impl-trait/auxiliary/cross_crate_ice2.rs
index 65bc594dcf2..119f7df1ffd 100644
--- a/src/test/ui/type-alias-impl-trait/auxiliary/cross_crate_ice2.rs
+++ b/src/test/ui/type-alias-impl-trait/auxiliary/cross_crate_ice2.rs
@@ -1,10 +1,7 @@
 // Crate that exports an opaque `impl Trait` type. Used for testing cross-crate.
 
 #![crate_type = "rlib"]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 pub trait View {
     type Tmp: Iterator<Item = u32>;
@@ -18,6 +15,6 @@ impl View for X {
     type Tmp = impl Iterator<Item = u32>;
 
     fn test(&self) -> Self::Tmp {
-        vec![1,2,3].into_iter()
+        vec![1, 2, 3].into_iter()
     }
 }
diff --git a/src/test/ui/type-alias-impl-trait/bound_reduction.rs b/src/test/ui/type-alias-impl-trait/bound_reduction.rs
index b45105ea8f2..b9b50f0b77a 100644
--- a/src/test/ui/type-alias-impl-trait/bound_reduction.rs
+++ b/src/test/ui/type-alias-impl-trait/bound_reduction.rs
@@ -1,9 +1,7 @@
 // build-pass (FIXME(62277): could be check-pass?)
 
 #![allow(warnings)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
+#![feature(type_alias_impl_trait)]
 
 fn main() {
 }
diff --git a/src/test/ui/type-alias-impl-trait/bound_reduction2.full_tait.stderr b/src/test/ui/type-alias-impl-trait/bound_reduction2.full_tait.stderr
deleted file mode 100644
index 164564e8516..00000000000
--- a/src/test/ui/type-alias-impl-trait/bound_reduction2.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/bound_reduction2.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: non-defining opaque type use in defining scope
-  --> $DIR/bound_reduction2.rs:18:46
-   |
-LL | fn foo_desugared<T: TraitWithAssoc>(_: T) -> Foo<T::Assoc> {
-   |                                              ^^^^^^^^^^^^^
-   |
-note: used non-generic type `<T as TraitWithAssoc>::Assoc` for generic parameter
-  --> $DIR/bound_reduction2.rs:12:10
-   |
-LL | type Foo<V> = impl Trait<V>;
-   |          ^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/bound_reduction2.rs b/src/test/ui/type-alias-impl-trait/bound_reduction2.rs
index b94b21e4244..a15074c3593 100644
--- a/src/test/ui/type-alias-impl-trait/bound_reduction2.rs
+++ b/src/test/ui/type-alias-impl-trait/bound_reduction2.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
diff --git a/src/test/ui/type-alias-impl-trait/bound_reduction2.min_tait.stderr b/src/test/ui/type-alias-impl-trait/bound_reduction2.stderr
index d3520a9bac2..c9d6a43b909 100644
--- a/src/test/ui/type-alias-impl-trait/bound_reduction2.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/bound_reduction2.stderr
@@ -1,11 +1,11 @@
 error: non-defining opaque type use in defining scope
-  --> $DIR/bound_reduction2.rs:18:46
+  --> $DIR/bound_reduction2.rs:15:46
    |
 LL | fn foo_desugared<T: TraitWithAssoc>(_: T) -> Foo<T::Assoc> {
    |                                              ^^^^^^^^^^^^^
    |
 note: used non-generic type `<T as TraitWithAssoc>::Assoc` for generic parameter
-  --> $DIR/bound_reduction2.rs:12:10
+  --> $DIR/bound_reduction2.rs:9:10
    |
 LL | type Foo<V> = impl Trait<V>;
    |          ^
diff --git a/src/test/ui/type-alias-impl-trait/bounds-are-checked-2.full_tait.stderr b/src/test/ui/type-alias-impl-trait/bounds-are-checked-2.full_tait.stderr
deleted file mode 100644
index cfb1fe9c19a..00000000000
--- a/src/test/ui/type-alias-impl-trait/bounds-are-checked-2.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/bounds-are-checked-2.rs:6:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0277]: the trait bound `T: Clone` is not satisfied
-  --> $DIR/bounds-are-checked-2.rs:9:13
-   |
-LL | type X<T> = impl Clone;
-   |             ^^^^^^^^^^ the trait `Clone` is not implemented for `T`
-   |
-help: consider restricting type parameter `T`
-   |
-LL | type X<T: std::clone::Clone> = impl Clone;
-   |         ^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/type-alias-impl-trait/bounds-are-checked-2.rs b/src/test/ui/type-alias-impl-trait/bounds-are-checked-2.rs
index fecc2543bce..c0359159aeb 100644
--- a/src/test/ui/type-alias-impl-trait/bounds-are-checked-2.rs
+++ b/src/test/ui/type-alias-impl-trait/bounds-are-checked-2.rs
@@ -1,10 +1,7 @@
 // Make sure that we check that impl trait types implement the traits that they
 // claim to.
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type X<T> = impl Clone;
 //~^ ERROR the trait bound `T: Clone` is not satisfied
diff --git a/src/test/ui/type-alias-impl-trait/bounds-are-checked-2.min_tait.stderr b/src/test/ui/type-alias-impl-trait/bounds-are-checked-2.stderr
index 735b96d5df9..c1f58aa6de6 100644
--- a/src/test/ui/type-alias-impl-trait/bounds-are-checked-2.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/bounds-are-checked-2.stderr
@@ -1,5 +1,5 @@
 error[E0277]: the trait bound `T: Clone` is not satisfied
-  --> $DIR/bounds-are-checked-2.rs:9:13
+  --> $DIR/bounds-are-checked-2.rs:6:13
    |
 LL | type X<T> = impl Clone;
    |             ^^^^^^^^^^ the trait `Clone` is not implemented for `T`
diff --git a/src/test/ui/type-alias-impl-trait/bounds-are-checked.full_tait.stderr b/src/test/ui/type-alias-impl-trait/bounds-are-checked.full_tait.stderr
deleted file mode 100644
index ca89421cd8b..00000000000
--- a/src/test/ui/type-alias-impl-trait/bounds-are-checked.full_tait.stderr
+++ /dev/null
@@ -1,35 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/bounds-are-checked.rs:6:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: unnecessary lifetime parameter `'a`
-  --> $DIR/bounds-are-checked.rs:12:6
-   |
-LL | fn f<'a: 'static>(t: &'a str) -> X<'a> {
-   |      ^^^^^^^^^^^
-   |
-   = help: you can use the `'static` lifetime directly, in place of `'a`
-
-error[E0308]: mismatched types
-  --> $DIR/bounds-are-checked.rs:9:14
-   |
-LL | type X<'a> = impl Into<&'static str> + From<&'a str>;
-   |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
-   |
-   = note: expected trait `From<&'a str>`
-              found trait `From<&'static str>`
-note: the lifetime `'a` as defined on the item at 9:8...
-  --> $DIR/bounds-are-checked.rs:9:8
-   |
-LL | type X<'a> = impl Into<&'static str> + From<&'a str>;
-   |        ^^
-   = note: ...does not necessarily outlive the static lifetime
-
-error: aborting due to previous error; 2 warnings emitted
-
-For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/type-alias-impl-trait/bounds-are-checked.rs b/src/test/ui/type-alias-impl-trait/bounds-are-checked.rs
index 5e1faaa3b08..eecef2338c1 100644
--- a/src/test/ui/type-alias-impl-trait/bounds-are-checked.rs
+++ b/src/test/ui/type-alias-impl-trait/bounds-are-checked.rs
@@ -1,10 +1,7 @@
 // Make sure that we check that impl trait types implement the traits that they
 // claim to.
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type X<'a> = impl Into<&'static str> + From<&'a str>;
 //~^ ERROR mismatched types
@@ -19,8 +16,7 @@ fn extend_lt<'a>(o: &'a str) -> &'static str {
 }
 
 fn main() {
-    let r =
-    {
+    let r = {
         let s = "abcdef".to_string();
         extend_lt(&s)
     };
diff --git a/src/test/ui/type-alias-impl-trait/bounds-are-checked.min_tait.stderr b/src/test/ui/type-alias-impl-trait/bounds-are-checked.stderr
index 9a451cb1083..d5fafe05887 100644
--- a/src/test/ui/type-alias-impl-trait/bounds-are-checked.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/bounds-are-checked.stderr
@@ -1,5 +1,5 @@
 warning: unnecessary lifetime parameter `'a`
-  --> $DIR/bounds-are-checked.rs:12:6
+  --> $DIR/bounds-are-checked.rs:9:6
    |
 LL | fn f<'a: 'static>(t: &'a str) -> X<'a> {
    |      ^^^^^^^^^^^
@@ -7,15 +7,15 @@ LL | fn f<'a: 'static>(t: &'a str) -> X<'a> {
    = help: you can use the `'static` lifetime directly, in place of `'a`
 
 error[E0308]: mismatched types
-  --> $DIR/bounds-are-checked.rs:9:14
+  --> $DIR/bounds-are-checked.rs:6:14
    |
 LL | type X<'a> = impl Into<&'static str> + From<&'a str>;
    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ lifetime mismatch
    |
    = note: expected trait `From<&'a str>`
               found trait `From<&'static str>`
-note: the lifetime `'a` as defined on the item at 9:8...
-  --> $DIR/bounds-are-checked.rs:9:8
+note: the lifetime `'a` as defined on the item at 6:8...
+  --> $DIR/bounds-are-checked.rs:6:8
    |
 LL | type X<'a> = impl Into<&'static str> + From<&'a str>;
    |        ^^
diff --git a/src/test/ui/type-alias-impl-trait/coherence.full_tait.stderr b/src/test/ui/type-alias-impl-trait/coherence.full_tait.stderr
deleted file mode 100644
index 68de0c961ba..00000000000
--- a/src/test/ui/type-alias-impl-trait/coherence.full_tait.stderr
+++ /dev/null
@@ -1,18 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/coherence.rs:4:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/coherence.rs:17:6
-   |
-LL | impl<T> foreign_crate::ForeignTrait for AliasOfForeignType<T> {}
-   |      ^ unconstrained type parameter
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0207`.
diff --git a/src/test/ui/type-alias-impl-trait/coherence.rs b/src/test/ui/type-alias-impl-trait/coherence.rs
index 51babb0e61b..1c0f83d6c12 100644
--- a/src/test/ui/type-alias-impl-trait/coherence.rs
+++ b/src/test/ui/type-alias-impl-trait/coherence.rs
@@ -1,8 +1,5 @@
 // aux-build:foreign-crate.rs
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 extern crate foreign_crate;
 
diff --git a/src/test/ui/type-alias-impl-trait/coherence.min_tait.stderr b/src/test/ui/type-alias-impl-trait/coherence.stderr
index 4da52369fdb..6ede0fa14ba 100644
--- a/src/test/ui/type-alias-impl-trait/coherence.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/coherence.stderr
@@ -1,5 +1,5 @@
 error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/coherence.rs:17:6
+  --> $DIR/coherence.rs:14:6
    |
 LL | impl<T> foreign_crate::ForeignTrait for AliasOfForeignType<T> {}
    |      ^ unconstrained type parameter
diff --git a/src/test/ui/type-alias-impl-trait/declared_but_never_defined.full_tait.stderr b/src/test/ui/type-alias-impl-trait/declared_but_never_defined.full_tait.stderr
deleted file mode 100644
index 5fc79cf9561..00000000000
--- a/src/test/ui/type-alias-impl-trait/declared_but_never_defined.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/declared_but_never_defined.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: could not find defining uses
-  --> $DIR/declared_but_never_defined.rs:9:12
-   |
-LL | type Bar = impl std::fmt::Debug;
-   |            ^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/declared_but_never_defined.rs b/src/test/ui/type-alias-impl-trait/declared_but_never_defined.rs
index ac92bea8c47..c4bf56a9197 100644
--- a/src/test/ui/type-alias-impl-trait/declared_but_never_defined.rs
+++ b/src/test/ui/type-alias-impl-trait/declared_but_never_defined.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
diff --git a/src/test/ui/type-alias-impl-trait/declared_but_never_defined.min_tait.stderr b/src/test/ui/type-alias-impl-trait/declared_but_never_defined.stderr
index b731e41b149..21c2e8a9db6 100644
--- a/src/test/ui/type-alias-impl-trait/declared_but_never_defined.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/declared_but_never_defined.stderr
@@ -1,5 +1,5 @@
 error: could not find defining uses
-  --> $DIR/declared_but_never_defined.rs:9:12
+  --> $DIR/declared_but_never_defined.rs:6:12
    |
 LL | type Bar = impl std::fmt::Debug;
    |            ^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.full_tait.stderr b/src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.full_tait.stderr
deleted file mode 100644
index eeccc598f52..00000000000
--- a/src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.full_tait.stderr
+++ /dev/null
@@ -1,32 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/declared_but_not_defined_in_scope.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: could not find defining uses
-  --> $DIR/declared_but_not_defined_in_scope.rs:10:20
-   |
-LL |     pub type Boo = impl ::std::fmt::Debug;
-   |                    ^^^^^^^^^^^^^^^^^^^^^^
-
-error[E0308]: mismatched types
-  --> $DIR/declared_but_not_defined_in_scope.rs:14:5
-   |
-LL |     pub type Boo = impl ::std::fmt::Debug;
-   |                    ---------------------- the expected opaque type
-...
-LL | fn bomp() -> boo::Boo {
-   |              -------- expected `impl Debug` because of return type
-LL |     ""
-   |     ^^ expected opaque type, found `&str`
-   |
-   = note: expected opaque type `impl Debug`
-                found reference `&'static str`
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.rs b/src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.rs
index 2bbae98db44..7ea517eb734 100644
--- a/src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.rs
+++ b/src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
diff --git a/src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.min_tait.stderr b/src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.stderr
index 20057c3aa51..0b4c262bbb4 100644
--- a/src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/declared_but_not_defined_in_scope.stderr
@@ -1,11 +1,11 @@
 error: could not find defining uses
-  --> $DIR/declared_but_not_defined_in_scope.rs:10:20
+  --> $DIR/declared_but_not_defined_in_scope.rs:7:20
    |
 LL |     pub type Boo = impl ::std::fmt::Debug;
    |                    ^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/declared_but_not_defined_in_scope.rs:14:5
+  --> $DIR/declared_but_not_defined_in_scope.rs:11:5
    |
 LL |     pub type Boo = impl ::std::fmt::Debug;
    |                    ---------------------- the expected opaque type
diff --git a/src/test/ui/type-alias-impl-trait/different_defining_uses.full_tait.stderr b/src/test/ui/type-alias-impl-trait/different_defining_uses.full_tait.stderr
deleted file mode 100644
index 60fa141884d..00000000000
--- a/src/test/ui/type-alias-impl-trait/different_defining_uses.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/different_defining_uses.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: concrete type differs from previous defining opaque type use
-  --> $DIR/different_defining_uses.rs:15:1
-   |
-LL | fn bar() -> Foo {
-   | ^^^^^^^^^^^^^^^ expected `&'static str`, got `i32`
-   |
-note: previous use here
-  --> $DIR/different_defining_uses.rs:11:1
-   |
-LL | fn foo() -> Foo {
-   | ^^^^^^^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/different_defining_uses.rs b/src/test/ui/type-alias-impl-trait/different_defining_uses.rs
index 542de6b62e1..272af7a5204 100644
--- a/src/test/ui/type-alias-impl-trait/different_defining_uses.rs
+++ b/src/test/ui/type-alias-impl-trait/different_defining_uses.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
@@ -12,6 +9,7 @@ fn foo() -> Foo {
     ""
 }
 
-fn bar() -> Foo { //~ ERROR concrete type differs from previous
+fn bar() -> Foo {
+    //~^ ERROR concrete type differs from previous
     42i32
 }
diff --git a/src/test/ui/type-alias-impl-trait/different_defining_uses.min_tait.stderr b/src/test/ui/type-alias-impl-trait/different_defining_uses.stderr
index 904ee58685c..eaa716bc71c 100644
--- a/src/test/ui/type-alias-impl-trait/different_defining_uses.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/different_defining_uses.stderr
@@ -1,11 +1,11 @@
 error: concrete type differs from previous defining opaque type use
-  --> $DIR/different_defining_uses.rs:15:1
+  --> $DIR/different_defining_uses.rs:12:1
    |
 LL | fn bar() -> Foo {
    | ^^^^^^^^^^^^^^^ expected `&'static str`, got `i32`
    |
 note: previous use here
-  --> $DIR/different_defining_uses.rs:11:1
+  --> $DIR/different_defining_uses.rs:8:1
    |
 LL | fn foo() -> Foo {
    | ^^^^^^^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.full_tait.stderr b/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.full_tait.stderr
deleted file mode 100644
index 5c5ae7eadcb..00000000000
--- a/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.full_tait.stderr
+++ /dev/null
@@ -1,35 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/different_defining_uses_never_type.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: concrete type differs from previous defining opaque type use
-  --> $DIR/different_defining_uses_never_type.rs:15:1
-   |
-LL | fn bar() -> Foo {
-   | ^^^^^^^^^^^^^^^ expected `&'static str`, got `()`
-   |
-note: previous use here
-  --> $DIR/different_defining_uses_never_type.rs:11:1
-   |
-LL | fn foo() -> Foo {
-   | ^^^^^^^^^^^^^^^
-
-error: concrete type differs from previous defining opaque type use
-  --> $DIR/different_defining_uses_never_type.rs:19:1
-   |
-LL | fn boo() -> Foo {
-   | ^^^^^^^^^^^^^^^ expected `&'static str`, got `()`
-   |
-note: previous use here
-  --> $DIR/different_defining_uses_never_type.rs:11:1
-   |
-LL | fn foo() -> Foo {
-   | ^^^^^^^^^^^^^^^
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.rs b/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.rs
index 72352a74a04..95cbcfec2dc 100644
--- a/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.rs
+++ b/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
@@ -12,10 +9,12 @@ fn foo() -> Foo {
     ""
 }
 
-fn bar() -> Foo { //~ ERROR concrete type differs from previous
+fn bar() -> Foo {
+    //~^ ERROR concrete type differs from previous
     panic!()
 }
 
-fn boo() -> Foo { //~ ERROR concrete type differs from previous
+fn boo() -> Foo {
+    //~^ ERROR concrete type differs from previous
     loop {}
 }
diff --git a/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.min_tait.stderr b/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.stderr
index 9cf2c583687..6274029e4f5 100644
--- a/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type.stderr
@@ -1,23 +1,23 @@
 error: concrete type differs from previous defining opaque type use
-  --> $DIR/different_defining_uses_never_type.rs:15:1
+  --> $DIR/different_defining_uses_never_type.rs:12:1
    |
 LL | fn bar() -> Foo {
    | ^^^^^^^^^^^^^^^ expected `&'static str`, got `()`
    |
 note: previous use here
-  --> $DIR/different_defining_uses_never_type.rs:11:1
+  --> $DIR/different_defining_uses_never_type.rs:8:1
    |
 LL | fn foo() -> Foo {
    | ^^^^^^^^^^^^^^^
 
 error: concrete type differs from previous defining opaque type use
-  --> $DIR/different_defining_uses_never_type.rs:19:1
+  --> $DIR/different_defining_uses_never_type.rs:17:1
    |
 LL | fn boo() -> Foo {
    | ^^^^^^^^^^^^^^^ expected `&'static str`, got `()`
    |
 note: previous use here
-  --> $DIR/different_defining_uses_never_type.rs:11:1
+  --> $DIR/different_defining_uses_never_type.rs:8:1
    |
 LL | fn foo() -> Foo {
    | ^^^^^^^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type2.full_tait.stderr b/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type2.full_tait.stderr
deleted file mode 100644
index b69622b77bf..00000000000
--- a/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type2.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/different_defining_uses_never_type2.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type2.rs b/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type2.rs
index ac9884b3e45..8549687ea78 100644
--- a/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type2.rs
+++ b/src/test/ui/type-alias-impl-trait/different_defining_uses_never_type2.rs
@@ -1,9 +1,6 @@
 // build-pass (FIXME(62277): could be check-pass?)
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
diff --git a/src/test/ui/type-alias-impl-trait/fallback.full_tait.stderr b/src/test/ui/type-alias-impl-trait/fallback.full_tait.stderr
deleted file mode 100644
index 9641d756cb0..00000000000
--- a/src/test/ui/type-alias-impl-trait/fallback.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/fallback.rs:7:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/fallback.rs b/src/test/ui/type-alias-impl-trait/fallback.rs
index 84fec75655f..fe1ca2230da 100644
--- a/src/test/ui/type-alias-impl-trait/fallback.rs
+++ b/src/test/ui/type-alias-impl-trait/fallback.rs
@@ -2,10 +2,7 @@
 // inference variable being completely unconstrained.
 //
 // check-pass
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type Foo = impl Copy;
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_different_defining_uses.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_different_defining_uses.full_tait.stderr
deleted file mode 100644
index 972e5d94288..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_different_defining_uses.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_different_defining_uses.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: concrete type differs from previous defining opaque type use
-  --> $DIR/generic_different_defining_uses.rs:14:1
-   |
-LL | fn my_iter2<T>(t: T) -> MyIter<T> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `std::iter::Once<T>`, got `std::option::IntoIter<T>`
-   |
-note: previous use here
-  --> $DIR/generic_different_defining_uses.rs:10:1
-   |
-LL | fn my_iter<T>(t: T) -> MyIter<T> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/generic_different_defining_uses.rs b/src/test/ui/type-alias-impl-trait/generic_different_defining_uses.rs
index 4eb603df583..07535130758 100644
--- a/src/test/ui/type-alias-impl-trait/generic_different_defining_uses.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_different_defining_uses.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
@@ -11,6 +8,7 @@ fn my_iter<T>(t: T) -> MyIter<T> {
     std::iter::once(t)
 }
 
-fn my_iter2<T>(t: T) -> MyIter<T> { //~ ERROR concrete type differs from previous
+fn my_iter2<T>(t: T) -> MyIter<T> {
+    //~^ ERROR concrete type differs from previous
     Some(t).into_iter()
 }
diff --git a/src/test/ui/type-alias-impl-trait/generic_different_defining_uses.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_different_defining_uses.stderr
index 911683862c2..f8a058170e3 100644
--- a/src/test/ui/type-alias-impl-trait/generic_different_defining_uses.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_different_defining_uses.stderr
@@ -1,11 +1,11 @@
 error: concrete type differs from previous defining opaque type use
-  --> $DIR/generic_different_defining_uses.rs:14:1
+  --> $DIR/generic_different_defining_uses.rs:11:1
    |
 LL | fn my_iter2<T>(t: T) -> MyIter<T> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `std::iter::Once<T>`, got `std::option::IntoIter<T>`
    |
 note: previous use here
-  --> $DIR/generic_different_defining_uses.rs:10:1
+  --> $DIR/generic_different_defining_uses.rs:7:1
    |
 LL | fn my_iter<T>(t: T) -> MyIter<T> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.full_tait.stderr
deleted file mode 100644
index ecf0e39ed6f..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_duplicate_lifetime_param.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_lifetime_param.rs:10:26
-   |
-LL | fn one<'a>(t: &'a ()) -> Two<'a, 'a> {
-   |                          ^^^^^^^^^^^
-   |
-note: lifetime used multiple times
-  --> $DIR/generic_duplicate_lifetime_param.rs:8:10
-   |
-LL | type Two<'a, 'b> = impl std::fmt::Debug;
-   |          ^^  ^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.rs b/src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.rs
index d838d497238..31f992976b1 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.rs
@@ -1,12 +1,10 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
 type Two<'a, 'b> = impl std::fmt::Debug;
 
-fn one<'a>(t: &'a ()) -> Two<'a, 'a> { //~ ERROR non-defining opaque type use
+fn one<'a>(t: &'a ()) -> Two<'a, 'a> {
+    //~^ ERROR non-defining opaque type use
     t
 }
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.stderr
index 1aad312056b..08b26b8fc13 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_lifetime_param.stderr
@@ -1,11 +1,11 @@
 error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_lifetime_param.rs:10:26
+  --> $DIR/generic_duplicate_lifetime_param.rs:7:26
    |
 LL | fn one<'a>(t: &'a ()) -> Two<'a, 'a> {
    |                          ^^^^^^^^^^^
    |
 note: lifetime used multiple times
-  --> $DIR/generic_duplicate_lifetime_param.rs:8:10
+  --> $DIR/generic_duplicate_lifetime_param.rs:5:10
    |
 LL | type Two<'a, 'b> = impl std::fmt::Debug;
    |          ^^  ^^
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.full_tait.stderr
deleted file mode 100644
index 805cea7127d..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.full_tait.stderr
+++ /dev/null
@@ -1,38 +0,0 @@
-error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_param_use.rs:16:30
-   |
-LL | fn one_ty<T: Debug>(t: T) -> TwoTys<T, T> {
-   |                              ^^^^^^^^^^^^
-   |
-note: type used multiple times
-  --> $DIR/generic_duplicate_param_use.rs:12:13
-   |
-LL | type TwoTys<T, U> = impl Debug;
-   |             ^  ^
-
-error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_param_use.rs:21:36
-   |
-LL | fn one_lifetime<'a>(t: &'a u32) -> TwoLifetimes<'a, 'a> {
-   |                                    ^^^^^^^^^^^^^^^^^^^^
-   |
-note: lifetime used multiple times
-  --> $DIR/generic_duplicate_param_use.rs:13:19
-   |
-LL | type TwoLifetimes<'a, 'b> = impl Debug;
-   |                   ^^  ^^
-
-error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_param_use.rs:26:50
-   |
-LL | fn one_const<const N: usize>(t: *mut [u8; N]) -> TwoConsts<N, N> {
-   |                                                  ^^^^^^^^^^^^^^^
-   |
-note: constant used multiple times
-  --> $DIR/generic_duplicate_param_use.rs:14:22
-   |
-LL | type TwoConsts<const X: usize, const Y: usize> = impl Debug;
-   |                      ^               ^
-
-error: aborting due to 3 previous errors
-
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.rs b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.rs
index 12ff5a2e713..e45950c4926 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.rs
@@ -1,7 +1,5 @@
 #![feature(const_generics)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
+#![feature(type_alias_impl_trait)]
 #![allow(incomplete_features)]
 
 use std::fmt::Debug;
@@ -14,16 +12,16 @@ type TwoLifetimes<'a, 'b> = impl Debug;
 type TwoConsts<const X: usize, const Y: usize> = impl Debug;
 
 fn one_ty<T: Debug>(t: T) -> TwoTys<T, T> {
-//~^ ERROR non-defining opaque type use in defining scope
+    //~^ ERROR non-defining opaque type use in defining scope
     t
 }
 
 fn one_lifetime<'a>(t: &'a u32) -> TwoLifetimes<'a, 'a> {
-//~^ ERROR non-defining opaque type use in defining scope
+    //~^ ERROR non-defining opaque type use in defining scope
     t
 }
 
 fn one_const<const N: usize>(t: *mut [u8; N]) -> TwoConsts<N, N> {
-//~^ ERROR non-defining opaque type use in defining scope
+    //~^ ERROR non-defining opaque type use in defining scope
     t
 }
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.stderr
index 805cea7127d..7ea5efd4e6b 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use.stderr
@@ -1,35 +1,35 @@
 error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_param_use.rs:16:30
+  --> $DIR/generic_duplicate_param_use.rs:14:30
    |
 LL | fn one_ty<T: Debug>(t: T) -> TwoTys<T, T> {
    |                              ^^^^^^^^^^^^
    |
 note: type used multiple times
-  --> $DIR/generic_duplicate_param_use.rs:12:13
+  --> $DIR/generic_duplicate_param_use.rs:10:13
    |
 LL | type TwoTys<T, U> = impl Debug;
    |             ^  ^
 
 error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_param_use.rs:21:36
+  --> $DIR/generic_duplicate_param_use.rs:19:36
    |
 LL | fn one_lifetime<'a>(t: &'a u32) -> TwoLifetimes<'a, 'a> {
    |                                    ^^^^^^^^^^^^^^^^^^^^
    |
 note: lifetime used multiple times
-  --> $DIR/generic_duplicate_param_use.rs:13:19
+  --> $DIR/generic_duplicate_param_use.rs:11:19
    |
 LL | type TwoLifetimes<'a, 'b> = impl Debug;
    |                   ^^  ^^
 
 error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_param_use.rs:26:50
+  --> $DIR/generic_duplicate_param_use.rs:24:50
    |
 LL | fn one_const<const N: usize>(t: *mut [u8; N]) -> TwoConsts<N, N> {
    |                                                  ^^^^^^^^^^^^^^^
    |
 note: constant used multiple times
-  --> $DIR/generic_duplicate_param_use.rs:14:22
+  --> $DIR/generic_duplicate_param_use.rs:12:22
    |
 LL | type TwoConsts<const X: usize, const Y: usize> = impl Debug;
    |                      ^               ^
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use10.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use10.full_tait.stderr
deleted file mode 100644
index ef7d4f1be4e..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use10.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_duplicate_param_use10.rs:4:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use10.rs b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use10.rs
index c7a7ded2127..c17d595dbb3 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use10.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use10.rs
@@ -1,8 +1,5 @@
 // check-pass
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.full_tait.stderr
deleted file mode 100644
index 357d477c9f1..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_duplicate_param_use2.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_param_use2.rs:13:27
-   |
-LL | fn one<T: Debug>(t: T) -> Two<T, T> {
-   |                           ^^^^^^^^^
-   |
-note: type used multiple times
-  --> $DIR/generic_duplicate_param_use2.rs:11:10
-   |
-LL | type Two<T, U> = impl Debug;
-   |          ^  ^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.rs b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.rs
index ff516622823..a74731df695 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.stderr
index 43af9eca63e..d87e8c5783b 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.stderr
@@ -1,11 +1,11 @@
 error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_param_use3.rs:13:27
+  --> $DIR/generic_duplicate_param_use2.rs:10:27
    |
 LL | fn one<T: Debug>(t: T) -> Two<T, T> {
    |                           ^^^^^^^^^
    |
 note: type used multiple times
-  --> $DIR/generic_duplicate_param_use3.rs:11:10
+  --> $DIR/generic_duplicate_param_use2.rs:8:10
    |
 LL | type Two<T, U> = impl Debug;
    |          ^  ^
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.full_tait.stderr
deleted file mode 100644
index b2004c8416c..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_duplicate_param_use3.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_param_use3.rs:13:27
-   |
-LL | fn one<T: Debug>(t: T) -> Two<T, T> {
-   |                           ^^^^^^^^^
-   |
-note: type used multiple times
-  --> $DIR/generic_duplicate_param_use3.rs:11:10
-   |
-LL | type Two<T, U> = impl Debug;
-   |          ^  ^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.rs b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.rs
index f7d1cc1ad4e..0597b8385d2 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.stderr
index f8e2b510460..711de855f0d 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use3.stderr
@@ -1,11 +1,11 @@
 error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_param_use4.rs:13:27
+  --> $DIR/generic_duplicate_param_use3.rs:10:27
    |
 LL | fn one<T: Debug>(t: T) -> Two<T, T> {
    |                           ^^^^^^^^^
    |
 note: type used multiple times
-  --> $DIR/generic_duplicate_param_use4.rs:11:10
+  --> $DIR/generic_duplicate_param_use3.rs:8:10
    |
 LL | type Two<T, U> = impl Debug;
    |          ^  ^
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.full_tait.stderr
deleted file mode 100644
index f5db77a08d7..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_duplicate_param_use4.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_param_use4.rs:13:27
-   |
-LL | fn one<T: Debug>(t: T) -> Two<T, T> {
-   |                           ^^^^^^^^^
-   |
-note: type used multiple times
-  --> $DIR/generic_duplicate_param_use4.rs:11:10
-   |
-LL | type Two<T, U> = impl Debug;
-   |          ^  ^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.rs b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.rs
index 26583a6ce9b..e77c94988f7 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
@@ -11,7 +8,7 @@ fn main() {}
 type Two<T, U> = impl Debug;
 
 fn one<T: Debug>(t: T) -> Two<T, T> {
-//~^ ERROR non-defining opaque type use in defining scope
+    //~^ ERROR non-defining opaque type use in defining scope
     t
 }
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.stderr
index 805ab67816f..fcf01f5164a 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use2.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use4.stderr
@@ -1,11 +1,11 @@
 error: non-defining opaque type use in defining scope
-  --> $DIR/generic_duplicate_param_use2.rs:13:27
+  --> $DIR/generic_duplicate_param_use4.rs:10:27
    |
 LL | fn one<T: Debug>(t: T) -> Two<T, T> {
    |                           ^^^^^^^^^
    |
 note: type used multiple times
-  --> $DIR/generic_duplicate_param_use2.rs:11:10
+  --> $DIR/generic_duplicate_param_use4.rs:8:10
    |
 LL | type Two<T, U> = impl Debug;
    |          ^  ^
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.full_tait.stderr
deleted file mode 100644
index aab64e72b7b..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.full_tait.stderr
+++ /dev/null
@@ -1,48 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_duplicate_param_use5.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: concrete type differs from previous defining opaque type use
-  --> $DIR/generic_duplicate_param_use5.rs:19:1
-   |
-LL | fn three<T: Debug, U: Debug>(t: T, u: U) -> Two<T, U> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(T, U)`, got `(U, T)`
-   |
-note: previous use here
-  --> $DIR/generic_duplicate_param_use5.rs:15:1
-   |
-LL | fn two<T: Debug, U: Debug>(t: T, u: U) -> Two<T, U> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error[E0277]: `T` doesn't implement `Debug`
-  --> $DIR/generic_duplicate_param_use5.rs:11:18
-   |
-LL | type Two<T, U> = impl Debug;
-   |                  ^^^^^^^^^^ `T` cannot be formatted using `{:?}` because it doesn't implement `Debug`
-   |
-   = note: required because of the requirements on the impl of `Debug` for `(T, U)`
-help: consider restricting type parameter `T`
-   |
-LL | type Two<T: std::fmt::Debug, U> = impl Debug;
-   |           ^^^^^^^^^^^^^^^^^
-
-error[E0277]: `U` doesn't implement `Debug`
-  --> $DIR/generic_duplicate_param_use5.rs:11:18
-   |
-LL | type Two<T, U> = impl Debug;
-   |                  ^^^^^^^^^^ `U` cannot be formatted using `{:?}` because it doesn't implement `Debug`
-   |
-   = note: required because of the requirements on the impl of `Debug` for `(T, U)`
-help: consider restricting type parameter `U`
-   |
-LL | type Two<T, U: std::fmt::Debug> = impl Debug;
-   |              ^^^^^^^^^^^^^^^^^
-
-error: aborting due to 3 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.rs b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.rs
index af473e8245a..dd2f202cf5d 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.stderr
index 5c8c5b89779..cb43b897cf9 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use5.stderr
@@ -1,17 +1,17 @@
 error: concrete type differs from previous defining opaque type use
-  --> $DIR/generic_duplicate_param_use5.rs:19:1
+  --> $DIR/generic_duplicate_param_use5.rs:16:1
    |
 LL | fn three<T: Debug, U: Debug>(t: T, u: U) -> Two<T, U> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(T, U)`, got `(U, T)`
    |
 note: previous use here
-  --> $DIR/generic_duplicate_param_use5.rs:15:1
+  --> $DIR/generic_duplicate_param_use5.rs:12:1
    |
 LL | fn two<T: Debug, U: Debug>(t: T, u: U) -> Two<T, U> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0277]: `T` doesn't implement `Debug`
-  --> $DIR/generic_duplicate_param_use5.rs:11:18
+  --> $DIR/generic_duplicate_param_use5.rs:8:18
    |
 LL | type Two<T, U> = impl Debug;
    |                  ^^^^^^^^^^ `T` cannot be formatted using `{:?}` because it doesn't implement `Debug`
@@ -23,7 +23,7 @@ LL | type Two<T: std::fmt::Debug, U> = impl Debug;
    |           ^^^^^^^^^^^^^^^^^
 
 error[E0277]: `U` doesn't implement `Debug`
-  --> $DIR/generic_duplicate_param_use5.rs:11:18
+  --> $DIR/generic_duplicate_param_use5.rs:8:18
    |
 LL | type Two<T, U> = impl Debug;
    |                  ^^^^^^^^^^ `U` cannot be formatted using `{:?}` because it doesn't implement `Debug`
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.full_tait.stderr
deleted file mode 100644
index a69e99bf8b0..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.full_tait.stderr
+++ /dev/null
@@ -1,36 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_duplicate_param_use6.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: concrete type differs from previous defining opaque type use
-  --> $DIR/generic_duplicate_param_use6.rs:18:1
-   |
-LL | fn three<T: Copy + Debug, U: Debug>(t: T, u: U) -> Two<T, U> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(T, T)`, got `(U, T)`
-   |
-note: previous use here
-  --> $DIR/generic_duplicate_param_use6.rs:14:1
-   |
-LL | fn two<T: Copy + Debug, U: Debug>(t: T, u: U) -> Two<T, U> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error[E0277]: `T` doesn't implement `Debug`
-  --> $DIR/generic_duplicate_param_use6.rs:11:18
-   |
-LL | type Two<T, U> = impl Debug;
-   |                  ^^^^^^^^^^ `T` cannot be formatted using `{:?}` because it doesn't implement `Debug`
-   |
-   = note: required because of the requirements on the impl of `Debug` for `(T, T)`
-help: consider restricting type parameter `T`
-   |
-LL | type Two<T: std::fmt::Debug, U> = impl Debug;
-   |           ^^^^^^^^^^^^^^^^^
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.rs b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.rs
index 01afb2f4496..d54d3cd62e0 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.stderr
index a377ef2d873..509da2320e8 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use6.stderr
@@ -1,17 +1,17 @@
 error: concrete type differs from previous defining opaque type use
-  --> $DIR/generic_duplicate_param_use6.rs:18:1
+  --> $DIR/generic_duplicate_param_use6.rs:15:1
    |
 LL | fn three<T: Copy + Debug, U: Debug>(t: T, u: U) -> Two<T, U> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(T, T)`, got `(U, T)`
    |
 note: previous use here
-  --> $DIR/generic_duplicate_param_use6.rs:14:1
+  --> $DIR/generic_duplicate_param_use6.rs:11:1
    |
 LL | fn two<T: Copy + Debug, U: Debug>(t: T, u: U) -> Two<T, U> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0277]: `T` doesn't implement `Debug`
-  --> $DIR/generic_duplicate_param_use6.rs:11:18
+  --> $DIR/generic_duplicate_param_use6.rs:8:18
    |
 LL | type Two<T, U> = impl Debug;
    |                  ^^^^^^^^^^ `T` cannot be formatted using `{:?}` because it doesn't implement `Debug`
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use7.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use7.full_tait.stderr
deleted file mode 100644
index d80c8326ad6..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use7.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_duplicate_param_use7.rs:4:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use7.rs b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use7.rs
index 184e3a5f926..feebf81eef2 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use7.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use7.rs
@@ -1,8 +1,5 @@
 // check-pass
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.full_tait.stderr
deleted file mode 100644
index e73ac88500e..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.full_tait.stderr
+++ /dev/null
@@ -1,36 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_duplicate_param_use8.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: concrete type differs from previous defining opaque type use
-  --> $DIR/generic_duplicate_param_use8.rs:17:1
-   |
-LL | fn three<T: Debug, U: Debug>(_: T, u: U) -> Two<T, U> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(T, u32)`, got `(U, u32)`
-   |
-note: previous use here
-  --> $DIR/generic_duplicate_param_use8.rs:13:1
-   |
-LL | fn two<T: Debug, U: Debug>(t: T, _: U) -> Two<T, U> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error[E0277]: `T` doesn't implement `Debug`
-  --> $DIR/generic_duplicate_param_use8.rs:10:18
-   |
-LL | type Two<T, U> = impl Debug;
-   |                  ^^^^^^^^^^ `T` cannot be formatted using `{:?}` because it doesn't implement `Debug`
-   |
-   = note: required because of the requirements on the impl of `Debug` for `(T, u32)`
-help: consider restricting type parameter `T`
-   |
-LL | type Two<T: std::fmt::Debug, U> = impl Debug;
-   |           ^^^^^^^^^^^^^^^^^
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.rs b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.rs
index ecb8b2cedb4..4a723b64cdc 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.stderr
index d7edce7a491..a09f2506258 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use8.stderr
@@ -1,17 +1,17 @@
 error: concrete type differs from previous defining opaque type use
-  --> $DIR/generic_duplicate_param_use8.rs:17:1
+  --> $DIR/generic_duplicate_param_use8.rs:14:1
    |
 LL | fn three<T: Debug, U: Debug>(_: T, u: U) -> Two<T, U> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(T, u32)`, got `(U, u32)`
    |
 note: previous use here
-  --> $DIR/generic_duplicate_param_use8.rs:13:1
+  --> $DIR/generic_duplicate_param_use8.rs:10:1
    |
 LL | fn two<T: Debug, U: Debug>(t: T, _: U) -> Two<T, U> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0277]: `T` doesn't implement `Debug`
-  --> $DIR/generic_duplicate_param_use8.rs:10:18
+  --> $DIR/generic_duplicate_param_use8.rs:7:18
    |
 LL | type Two<T, U> = impl Debug;
    |                  ^^^^^^^^^^ `T` cannot be formatted using `{:?}` because it doesn't implement `Debug`
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.full_tait.stderr
deleted file mode 100644
index 0b3d72d67b2..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.full_tait.stderr
+++ /dev/null
@@ -1,60 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_duplicate_param_use9.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: concrete type differs from previous defining opaque type use
-  --> $DIR/generic_duplicate_param_use9.rs:24:1
-   |
-LL | fn three<T: Debug, U: Debug>(t: T, u: U) -> Two<T, U> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(A, B, <A as Foo>::Bar)`, got `(A, B, i32)`
-   |
-note: previous use here
-  --> $DIR/generic_duplicate_param_use9.rs:20:1
-   |
-LL | fn two<T: Debug + Foo, U: Debug>(t: T, u: U) -> Two<T, U> {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error[E0277]: the trait bound `A: Foo` is not satisfied in `(A, B, <A as Foo>::Bar)`
-  --> $DIR/generic_duplicate_param_use9.rs:10:18
-   |
-LL | type Two<A, B> = impl Debug;
-   |                  ^^^^^^^^^^ within `(A, B, <A as Foo>::Bar)`, the trait `Foo` is not implemented for `A`
-   |
-   = note: required because it appears within the type `(A, B, <A as Foo>::Bar)`
-help: consider restricting type parameter `A`
-   |
-LL | type Two<A: Foo, B> = impl Debug;
-   |           ^^^^^
-
-error[E0277]: `A` doesn't implement `Debug`
-  --> $DIR/generic_duplicate_param_use9.rs:10:18
-   |
-LL | type Two<A, B> = impl Debug;
-   |                  ^^^^^^^^^^ `A` cannot be formatted using `{:?}` because it doesn't implement `Debug`
-   |
-   = note: required because of the requirements on the impl of `Debug` for `(A, B, <A as Foo>::Bar)`
-help: consider restricting type parameter `A`
-   |
-LL | type Two<A: std::fmt::Debug, B> = impl Debug;
-   |           ^^^^^^^^^^^^^^^^^
-
-error[E0277]: `B` doesn't implement `Debug`
-  --> $DIR/generic_duplicate_param_use9.rs:10:18
-   |
-LL | type Two<A, B> = impl Debug;
-   |                  ^^^^^^^^^^ `B` cannot be formatted using `{:?}` because it doesn't implement `Debug`
-   |
-   = note: required because of the requirements on the impl of `Debug` for `(A, B, <A as Foo>::Bar)`
-help: consider restricting type parameter `B`
-   |
-LL | type Two<A, B: std::fmt::Debug> = impl Debug;
-   |              ^^^^^^^^^^^^^^^^^
-
-error: aborting due to 4 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.rs b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.rs
index 5eced6cfa5a..74708193317 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.stderr
index fd1081d7b71..68a30820951 100644
--- a/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_duplicate_param_use9.stderr
@@ -1,17 +1,17 @@
 error: concrete type differs from previous defining opaque type use
-  --> $DIR/generic_duplicate_param_use9.rs:24:1
+  --> $DIR/generic_duplicate_param_use9.rs:21:1
    |
 LL | fn three<T: Debug, U: Debug>(t: T, u: U) -> Two<T, U> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected `(A, B, <A as Foo>::Bar)`, got `(A, B, i32)`
    |
 note: previous use here
-  --> $DIR/generic_duplicate_param_use9.rs:20:1
+  --> $DIR/generic_duplicate_param_use9.rs:17:1
    |
 LL | fn two<T: Debug + Foo, U: Debug>(t: T, u: U) -> Two<T, U> {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
 error[E0277]: the trait bound `A: Foo` is not satisfied in `(A, B, <A as Foo>::Bar)`
-  --> $DIR/generic_duplicate_param_use9.rs:10:18
+  --> $DIR/generic_duplicate_param_use9.rs:7:18
    |
 LL | type Two<A, B> = impl Debug;
    |                  ^^^^^^^^^^ within `(A, B, <A as Foo>::Bar)`, the trait `Foo` is not implemented for `A`
@@ -23,7 +23,7 @@ LL | type Two<A: Foo, B> = impl Debug;
    |           ^^^^^
 
 error[E0277]: `A` doesn't implement `Debug`
-  --> $DIR/generic_duplicate_param_use9.rs:10:18
+  --> $DIR/generic_duplicate_param_use9.rs:7:18
    |
 LL | type Two<A, B> = impl Debug;
    |                  ^^^^^^^^^^ `A` cannot be formatted using `{:?}` because it doesn't implement `Debug`
@@ -35,7 +35,7 @@ LL | type Two<A: std::fmt::Debug, B> = impl Debug;
    |           ^^^^^^^^^^^^^^^^^
 
 error[E0277]: `B` doesn't implement `Debug`
-  --> $DIR/generic_duplicate_param_use9.rs:10:18
+  --> $DIR/generic_duplicate_param_use9.rs:7:18
    |
 LL | type Two<A, B> = impl Debug;
    |                  ^^^^^^^^^^ `B` cannot be formatted using `{:?}` because it doesn't implement `Debug`
diff --git a/src/test/ui/type-alias-impl-trait/generic_lifetime_param.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_lifetime_param.full_tait.stderr
deleted file mode 100644
index 39817757f18..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_lifetime_param.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_lifetime_param.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/generic_lifetime_param.rs b/src/test/ui/type-alias-impl-trait/generic_lifetime_param.rs
index dbe7cfd1c81..e109c38c986 100644
--- a/src/test/ui/type-alias-impl-trait/generic_lifetime_param.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_lifetime_param.rs
@@ -1,9 +1,6 @@
 // build-pass (FIXME(62277): could be check-pass?)
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_nondefining_use.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_nondefining_use.min_tait.stderr
deleted file mode 100644
index 4d7eddfb2fb..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_nondefining_use.min_tait.stderr
+++ /dev/null
@@ -1,35 +0,0 @@
-error: non-defining opaque type use in defining scope
-  --> $DIR/generic_nondefining_use.rs:17:21
-   |
-LL | fn concrete_ty() -> OneTy<u32> {
-   |                     ^^^^^^^^^^
-   |
-note: used non-generic type `u32` for generic parameter
-  --> $DIR/generic_nondefining_use.rs:11:12
-   |
-LL | type OneTy<T> = impl Debug;
-   |            ^
-
-error: non-defining opaque type use in defining scope
-  --> $DIR/generic_nondefining_use.rs:22:27
-   |
-LL | type OneLifetime<'a> = impl Debug;
-   |                  -- cannot use static lifetime; use a bound lifetime instead or remove the lifetime parameter from the opaque type
-...
-LL | fn concrete_lifetime() -> OneLifetime<'static> {
-   |                           ^^^^^^^^^^^^^^^^^^^^
-
-error: non-defining opaque type use in defining scope
-  --> $DIR/generic_nondefining_use.rs:27:24
-   |
-LL | fn concrete_const() -> OneConst<{123}> {
-   |                        ^^^^^^^^^^^^^^^
-   |
-note: used non-generic constant `{123}` for generic parameter
-  --> $DIR/generic_nondefining_use.rs:13:21
-   |
-LL | type OneConst<const X: usize> = impl Debug;
-   |                     ^
-
-error: aborting due to 3 previous errors
-
diff --git a/src/test/ui/type-alias-impl-trait/generic_nondefining_use.rs b/src/test/ui/type-alias-impl-trait/generic_nondefining_use.rs
index c69884d8d6e..9f1bffff77c 100644
--- a/src/test/ui/type-alias-impl-trait/generic_nondefining_use.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_nondefining_use.rs
@@ -1,7 +1,5 @@
 #![feature(const_generics)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
+#![feature(type_alias_impl_trait)]
 #![allow(incomplete_features)]
 
 use std::fmt::Debug;
@@ -15,16 +13,16 @@ type OneConst<const X: usize> = impl Debug;
 // Not defining uses, because they doesn't define *all* possible generics.
 
 fn concrete_ty() -> OneTy<u32> {
-//~^ ERROR non-defining opaque type use in defining scope
+    //~^ ERROR non-defining opaque type use in defining scope
     5u32
 }
 
 fn concrete_lifetime() -> OneLifetime<'static> {
-//~^ ERROR non-defining opaque type use in defining scope
+    //~^ ERROR non-defining opaque type use in defining scope
     6u32
 }
 
-fn concrete_const() -> OneConst<{123}> {
-//~^ ERROR non-defining opaque type use in defining scope
+fn concrete_const() -> OneConst<{ 123 }> {
+    //~^ ERROR non-defining opaque type use in defining scope
     7u32
 }
diff --git a/src/test/ui/type-alias-impl-trait/generic_nondefining_use.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_nondefining_use.stderr
index 4d7eddfb2fb..eb0c296bb62 100644
--- a/src/test/ui/type-alias-impl-trait/generic_nondefining_use.full_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_nondefining_use.stderr
@@ -1,17 +1,17 @@
 error: non-defining opaque type use in defining scope
-  --> $DIR/generic_nondefining_use.rs:17:21
+  --> $DIR/generic_nondefining_use.rs:15:21
    |
 LL | fn concrete_ty() -> OneTy<u32> {
    |                     ^^^^^^^^^^
    |
 note: used non-generic type `u32` for generic parameter
-  --> $DIR/generic_nondefining_use.rs:11:12
+  --> $DIR/generic_nondefining_use.rs:9:12
    |
 LL | type OneTy<T> = impl Debug;
    |            ^
 
 error: non-defining opaque type use in defining scope
-  --> $DIR/generic_nondefining_use.rs:22:27
+  --> $DIR/generic_nondefining_use.rs:20:27
    |
 LL | type OneLifetime<'a> = impl Debug;
    |                  -- cannot use static lifetime; use a bound lifetime instead or remove the lifetime parameter from the opaque type
@@ -20,13 +20,13 @@ LL | fn concrete_lifetime() -> OneLifetime<'static> {
    |                           ^^^^^^^^^^^^^^^^^^^^
 
 error: non-defining opaque type use in defining scope
-  --> $DIR/generic_nondefining_use.rs:27:24
+  --> $DIR/generic_nondefining_use.rs:25:24
    |
-LL | fn concrete_const() -> OneConst<{123}> {
-   |                        ^^^^^^^^^^^^^^^
+LL | fn concrete_const() -> OneConst<{ 123 }> {
+   |                        ^^^^^^^^^^^^^^^^^
    |
-note: used non-generic constant `{123}` for generic parameter
-  --> $DIR/generic_nondefining_use.rs:13:21
+note: used non-generic constant `{ 123 }` for generic parameter
+  --> $DIR/generic_nondefining_use.rs:11:21
    |
 LL | type OneConst<const X: usize> = impl Debug;
    |                     ^
diff --git a/src/test/ui/type-alias-impl-trait/generic_not_used.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_not_used.full_tait.stderr
deleted file mode 100644
index 819ef7b7712..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_not_used.full_tait.stderr
+++ /dev/null
@@ -1,27 +0,0 @@
-error: at least one trait must be specified
-  --> $DIR/generic_not_used.rs:8:33
-   |
-LL | type WrongGeneric<T: 'static> = impl 'static;
-   |                                 ^^^^^^^^^^^^
-
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_not_used.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: type parameter `V` is part of concrete type but not used in parameter list for the `impl Trait` type alias
-  --> $DIR/generic_not_used.rs:11:73
-   |
-LL |   fn wrong_generic<U: 'static, V: 'static>(_: U, v: V) -> WrongGeneric<U> {
-   |  _________________________________________________________________________^
-LL | |
-LL | |     v
-LL | | }
-   | |_^
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/generic_not_used.rs b/src/test/ui/type-alias-impl-trait/generic_not_used.rs
index 68f50b2151f..dd6300a64f4 100644
--- a/src/test/ui/type-alias-impl-trait/generic_not_used.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_not_used.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
@@ -9,6 +6,6 @@ type WrongGeneric<T: 'static> = impl 'static;
 //~^ ERROR: at least one trait must be specified
 
 fn wrong_generic<U: 'static, V: 'static>(_: U, v: V) -> WrongGeneric<U> {
-//~^ ERROR type parameter `V` is part of concrete type but not used in parameter list
+    //~^ ERROR type parameter `V` is part of concrete type but not used in parameter list
     v
 }
diff --git a/src/test/ui/type-alias-impl-trait/generic_not_used.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_not_used.stderr
index fe7f5f6c71e..8015ff7eded 100644
--- a/src/test/ui/type-alias-impl-trait/generic_not_used.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_not_used.stderr
@@ -1,11 +1,11 @@
 error: at least one trait must be specified
-  --> $DIR/generic_not_used.rs:8:33
+  --> $DIR/generic_not_used.rs:5:33
    |
 LL | type WrongGeneric<T: 'static> = impl 'static;
    |                                 ^^^^^^^^^^^^
 
 error: type parameter `V` is part of concrete type but not used in parameter list for the `impl Trait` type alias
-  --> $DIR/generic_not_used.rs:11:73
+  --> $DIR/generic_not_used.rs:8:73
    |
 LL |   fn wrong_generic<U: 'static, V: 'static>(_: U, v: V) -> WrongGeneric<U> {
    |  _________________________________________________________________________^
diff --git a/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.full_tait.nll.stderr b/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.full_tait.nll.stderr
deleted file mode 100644
index 28ac61a6b98..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.full_tait.nll.stderr
+++ /dev/null
@@ -1,50 +0,0 @@
-error: at least one trait must be specified
-  --> $DIR/generic_type_does_not_live_long_enough.rs:12:24
-   |
-LL | type WrongGeneric<T> = impl 'static;
-   |                        ^^^^^^^^^^^^
-
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_type_does_not_live_long_enough.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0308]: mismatched types
-  --> $DIR/generic_type_does_not_live_long_enough.rs:9:18
-   |
-LL |     let z: i32 = x;
-   |            ---   ^ expected `i32`, found opaque type
-   |            |
-   |            expected due to this
-...
-LL | type WrongGeneric<T> = impl 'static;
-   |                        ------------ the found opaque type
-   |
-   = note:     expected type `i32`
-           found opaque type `impl Sized`
-
-error[E0310]: the parameter type `T` may not live long enough
-  --> $DIR/generic_type_does_not_live_long_enough.rs:16:30
-   |
-LL | fn wrong_generic<T>(t: T) -> WrongGeneric<T> {
-   |                              ^^^^^^^^^^^^^^^
-   |
-   = help: consider adding an explicit lifetime bound `T: 'static`...
-
-error[E0310]: the parameter type `T` may not live long enough
-  --> $DIR/generic_type_does_not_live_long_enough.rs:12:24
-   |
-LL | type WrongGeneric<T> = impl 'static;
-   |                        ^^^^^^^^^^^^
-   |
-   = help: consider adding an explicit lifetime bound `T: 'static`...
-   = note: ...so that the type `T` will meet its required lifetime bounds
-
-error: aborting due to 4 previous errors; 1 warning emitted
-
-Some errors have detailed explanations: E0308, E0310.
-For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.full_tait.stderr
deleted file mode 100644
index 90a753b5a6d..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.full_tait.stderr
+++ /dev/null
@@ -1,42 +0,0 @@
-error: at least one trait must be specified
-  --> $DIR/generic_type_does_not_live_long_enough.rs:12:24
-   |
-LL | type WrongGeneric<T> = impl 'static;
-   |                        ^^^^^^^^^^^^
-
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_type_does_not_live_long_enough.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0308]: mismatched types
-  --> $DIR/generic_type_does_not_live_long_enough.rs:9:18
-   |
-LL |     let z: i32 = x;
-   |            ---   ^ expected `i32`, found opaque type
-   |            |
-   |            expected due to this
-...
-LL | type WrongGeneric<T> = impl 'static;
-   |                        ------------ the found opaque type
-   |
-   = note:     expected type `i32`
-           found opaque type `impl Sized`
-
-error[E0310]: the parameter type `T` may not live long enough
-  --> $DIR/generic_type_does_not_live_long_enough.rs:12:24
-   |
-LL | type WrongGeneric<T> = impl 'static;
-   |                        ^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
-...
-LL | fn wrong_generic<T>(t: T) -> WrongGeneric<T> {
-   |                  - help: consider adding an explicit lifetime bound...: `T: 'static`
-
-error: aborting due to 3 previous errors; 1 warning emitted
-
-Some errors have detailed explanations: E0308, E0310.
-For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.min_tait.nll.stderr b/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.nll.stderr
index b8ca8e46079..84f48cd6c0d 100644
--- a/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.min_tait.nll.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.nll.stderr
@@ -1,11 +1,11 @@
 error: at least one trait must be specified
-  --> $DIR/generic_type_does_not_live_long_enough.rs:12:24
+  --> $DIR/generic_type_does_not_live_long_enough.rs:9:24
    |
 LL | type WrongGeneric<T> = impl 'static;
    |                        ^^^^^^^^^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/generic_type_does_not_live_long_enough.rs:9:18
+  --> $DIR/generic_type_does_not_live_long_enough.rs:6:18
    |
 LL |     let z: i32 = x;
    |            ---   ^ expected `i32`, found opaque type
@@ -19,7 +19,7 @@ LL | type WrongGeneric<T> = impl 'static;
            found opaque type `impl Sized`
 
 error[E0310]: the parameter type `T` may not live long enough
-  --> $DIR/generic_type_does_not_live_long_enough.rs:16:30
+  --> $DIR/generic_type_does_not_live_long_enough.rs:13:30
    |
 LL | fn wrong_generic<T>(t: T) -> WrongGeneric<T> {
    |                              ^^^^^^^^^^^^^^^
@@ -27,7 +27,7 @@ LL | fn wrong_generic<T>(t: T) -> WrongGeneric<T> {
    = help: consider adding an explicit lifetime bound `T: 'static`...
 
 error[E0310]: the parameter type `T` may not live long enough
-  --> $DIR/generic_type_does_not_live_long_enough.rs:12:24
+  --> $DIR/generic_type_does_not_live_long_enough.rs:9:24
    |
 LL | type WrongGeneric<T> = impl 'static;
    |                        ^^^^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.rs b/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.rs
index 9f647d9e737..9c6b93b7ba0 100644
--- a/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {
     let y = 42;
diff --git a/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.stderr
index e5028220107..18d8daa05e6 100644
--- a/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_type_does_not_live_long_enough.stderr
@@ -1,11 +1,11 @@
 error: at least one trait must be specified
-  --> $DIR/generic_type_does_not_live_long_enough.rs:12:24
+  --> $DIR/generic_type_does_not_live_long_enough.rs:9:24
    |
 LL | type WrongGeneric<T> = impl 'static;
    |                        ^^^^^^^^^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/generic_type_does_not_live_long_enough.rs:9:18
+  --> $DIR/generic_type_does_not_live_long_enough.rs:6:18
    |
 LL |     let z: i32 = x;
    |            ---   ^ expected `i32`, found opaque type
@@ -19,7 +19,7 @@ LL | type WrongGeneric<T> = impl 'static;
            found opaque type `impl Sized`
 
 error[E0310]: the parameter type `T` may not live long enough
-  --> $DIR/generic_type_does_not_live_long_enough.rs:12:24
+  --> $DIR/generic_type_does_not_live_long_enough.rs:9:24
    |
 LL | type WrongGeneric<T> = impl 'static;
    |                        ^^^^^^^^^^^^ ...so that the type `T` will meet its required lifetime bounds
diff --git a/src/test/ui/type-alias-impl-trait/generic_underconstrained.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_underconstrained.full_tait.stderr
deleted file mode 100644
index c4778a46fb0..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_underconstrained.full_tait.stderr
+++ /dev/null
@@ -1,32 +0,0 @@
-error: at least one trait must be specified
-  --> $DIR/generic_underconstrained.rs:9:35
-   |
-LL | type Underconstrained<T: Trait> = impl 'static;
-   |                                   ^^^^^^^^^^^^
-
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_underconstrained.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0277]: the trait bound `T: Trait` is not satisfied
-  --> $DIR/generic_underconstrained.rs:13:31
-   |
-LL | type Underconstrained<T: Trait> = impl 'static;
-   |                          ----- required by this bound in `Underconstrained`
-...
-LL | fn underconstrain<T>(_: T) -> Underconstrained<T> {
-   |                               ^^^^^^^^^^^^^^^^^^^ the trait `Trait` is not implemented for `T`
-   |
-help: consider restricting type parameter `T`
-   |
-LL | fn underconstrain<T: Trait>(_: T) -> Underconstrained<T> {
-   |                    ^^^^^^^
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/type-alias-impl-trait/generic_underconstrained.rs b/src/test/ui/type-alias-impl-trait/generic_underconstrained.rs
index f4c4a1b72cb..766ee36c02b 100644
--- a/src/test/ui/type-alias-impl-trait/generic_underconstrained.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_underconstrained.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_underconstrained.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_underconstrained.stderr
index 6c1d6debee8..cefc5d99b37 100644
--- a/src/test/ui/type-alias-impl-trait/generic_underconstrained.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_underconstrained.stderr
@@ -1,11 +1,11 @@
 error: at least one trait must be specified
-  --> $DIR/generic_underconstrained.rs:9:35
+  --> $DIR/generic_underconstrained.rs:6:35
    |
 LL | type Underconstrained<T: Trait> = impl 'static;
    |                                   ^^^^^^^^^^^^
 
 error[E0277]: the trait bound `T: Trait` is not satisfied
-  --> $DIR/generic_underconstrained.rs:13:31
+  --> $DIR/generic_underconstrained.rs:10:31
    |
 LL | type Underconstrained<T: Trait> = impl 'static;
    |                          ----- required by this bound in `Underconstrained`
diff --git a/src/test/ui/type-alias-impl-trait/generic_underconstrained2.full_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_underconstrained2.full_tait.stderr
deleted file mode 100644
index 7ab73d24274..00000000000
--- a/src/test/ui/type-alias-impl-trait/generic_underconstrained2.full_tait.stderr
+++ /dev/null
@@ -1,52 +0,0 @@
-error: at least one trait must be specified
-  --> $DIR/generic_underconstrained2.rs:8:45
-   |
-LL | type Underconstrained<T: std::fmt::Debug> = impl 'static;
-   |                                             ^^^^^^^^^^^^
-
-error: at least one trait must be specified
-  --> $DIR/generic_underconstrained2.rs:17:46
-   |
-LL | type Underconstrained2<T: std::fmt::Debug> = impl 'static;
-   |                                              ^^^^^^^^^^^^
-
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/generic_underconstrained2.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0277]: `U` doesn't implement `Debug`
-  --> $DIR/generic_underconstrained2.rs:12:33
-   |
-LL | type Underconstrained<T: std::fmt::Debug> = impl 'static;
-   |                          --------------- required by this bound in `Underconstrained`
-...
-LL | fn underconstrained<U>(_: U) -> Underconstrained<U> {
-   |                                 ^^^^^^^^^^^^^^^^^^^ `U` cannot be formatted using `{:?}` because it doesn't implement `Debug`
-   |
-help: consider restricting type parameter `U`
-   |
-LL | fn underconstrained<U: std::fmt::Debug>(_: U) -> Underconstrained<U> {
-   |                      ^^^^^^^^^^^^^^^^^
-
-error[E0277]: `V` doesn't implement `Debug`
-  --> $DIR/generic_underconstrained2.rs:21:43
-   |
-LL | type Underconstrained2<T: std::fmt::Debug> = impl 'static;
-   |                           --------------- required by this bound in `Underconstrained2`
-...
-LL | fn underconstrained2<U, V>(_: U, _: V) -> Underconstrained2<V> {
-   |                                           ^^^^^^^^^^^^^^^^^^^^ `V` cannot be formatted using `{:?}` because it doesn't implement `Debug`
-   |
-help: consider restricting type parameter `V`
-   |
-LL | fn underconstrained2<U, V: std::fmt::Debug>(_: U, _: V) -> Underconstrained2<V> {
-   |                          ^^^^^^^^^^^^^^^^^
-
-error: aborting due to 4 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/type-alias-impl-trait/generic_underconstrained2.rs b/src/test/ui/type-alias-impl-trait/generic_underconstrained2.rs
index b3fb0748d2a..cd7c962e2d1 100644
--- a/src/test/ui/type-alias-impl-trait/generic_underconstrained2.rs
+++ b/src/test/ui/type-alias-impl-trait/generic_underconstrained2.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
diff --git a/src/test/ui/type-alias-impl-trait/generic_underconstrained2.min_tait.stderr b/src/test/ui/type-alias-impl-trait/generic_underconstrained2.stderr
index a4f5f4b8645..8bba62a913e 100644
--- a/src/test/ui/type-alias-impl-trait/generic_underconstrained2.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/generic_underconstrained2.stderr
@@ -1,17 +1,17 @@
 error: at least one trait must be specified
-  --> $DIR/generic_underconstrained2.rs:8:45
+  --> $DIR/generic_underconstrained2.rs:5:45
    |
 LL | type Underconstrained<T: std::fmt::Debug> = impl 'static;
    |                                             ^^^^^^^^^^^^
 
 error: at least one trait must be specified
-  --> $DIR/generic_underconstrained2.rs:17:46
+  --> $DIR/generic_underconstrained2.rs:14:46
    |
 LL | type Underconstrained2<T: std::fmt::Debug> = impl 'static;
    |                                              ^^^^^^^^^^^^
 
 error[E0277]: `U` doesn't implement `Debug`
-  --> $DIR/generic_underconstrained2.rs:12:33
+  --> $DIR/generic_underconstrained2.rs:9:33
    |
 LL | type Underconstrained<T: std::fmt::Debug> = impl 'static;
    |                          --------------- required by this bound in `Underconstrained`
@@ -25,7 +25,7 @@ LL | fn underconstrained<U: std::fmt::Debug>(_: U) -> Underconstrained<U> {
    |                      ^^^^^^^^^^^^^^^^^
 
 error[E0277]: `V` doesn't implement `Debug`
-  --> $DIR/generic_underconstrained2.rs:21:43
+  --> $DIR/generic_underconstrained2.rs:18:43
    |
 LL | type Underconstrained2<T: std::fmt::Debug> = impl 'static;
    |                           --------------- required by this bound in `Underconstrained2`
diff --git a/src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.full_tait.stderr b/src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.full_tait.stderr
deleted file mode 100644
index bdd88134290..00000000000
--- a/src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.full_tait.stderr
+++ /dev/null
@@ -1,18 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/impl-with-unconstrained-param.rs:6:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/impl-with-unconstrained-param.rs:14:6
-   |
-LL | impl<T> X for () {
-   |      ^ unconstrained type parameter
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0207`.
diff --git a/src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.rs b/src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.rs
index 1aefa2474ff..851c2f66c47 100644
--- a/src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.rs
+++ b/src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.rs
@@ -1,10 +1,7 @@
 // Ensure that we don't ICE if associated type impl trait is used in an impl
 // with an unconstrained type parameter.
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait X {
     type I;
diff --git a/src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.min_tait.stderr b/src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.stderr
index eb59766b913..8cf8fb1d16c 100644
--- a/src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/impl-with-unconstrained-param.stderr
@@ -1,5 +1,5 @@
 error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/impl-with-unconstrained-param.rs:14:6
+  --> $DIR/impl-with-unconstrained-param.rs:11:6
    |
 LL | impl<T> X for () {
    |      ^ unconstrained type parameter
diff --git a/src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.full_tait.stderr b/src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.full_tait.stderr
deleted file mode 100644
index 6d1a59aafed..00000000000
--- a/src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.full_tait.stderr
+++ /dev/null
@@ -1,32 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/incoherent-assoc-imp-trait.rs:6:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0119]: conflicting implementations of trait `std::ops::FnOnce<()>` for type `&_`
-  --> $DIR/incoherent-assoc-imp-trait.rs:13:1
-   |
-LL | impl<F> FnOnce<()> for &F {
-   | ^^^^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: conflicting implementation in crate `core`:
-           - impl<A, F> FnOnce<A> for &F
-             where F: Fn<A>, F: ?Sized;
-
-error[E0210]: type parameter `F` must be used as the type parameter for some local type (e.g., `MyStruct<F>`)
-  --> $DIR/incoherent-assoc-imp-trait.rs:13:6
-   |
-LL | impl<F> FnOnce<()> for &F {
-   |      ^ type parameter `F` must be used as the type parameter for some local type
-   |
-   = note: implementing a foreign trait is only possible if at least one of the types for which it is implemented is local
-   = note: only traits defined in the current crate can be implemented for a type parameter
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-Some errors have detailed explanations: E0119, E0210.
-For more information about an error, try `rustc --explain E0119`.
diff --git a/src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.rs b/src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.rs
index b52b9c18f08..c46c4715924 100644
--- a/src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.rs
+++ b/src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.rs
@@ -1,10 +1,7 @@
 // Regression test for issue 67856
 
 #![feature(unboxed_closures)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 #![feature(fn_traits)]
 
 trait MyTrait {}
diff --git a/src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.min_tait.stderr b/src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.stderr
index 5c02b602d52..e1e259187f5 100644
--- a/src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/incoherent-assoc-imp-trait.stderr
@@ -1,5 +1,5 @@
 error[E0119]: conflicting implementations of trait `std::ops::FnOnce<()>` for type `&_`
-  --> $DIR/incoherent-assoc-imp-trait.rs:13:1
+  --> $DIR/incoherent-assoc-imp-trait.rs:10:1
    |
 LL | impl<F> FnOnce<()> for &F {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -9,7 +9,7 @@ LL | impl<F> FnOnce<()> for &F {
              where F: Fn<A>, F: ?Sized;
 
 error[E0210]: type parameter `F` must be used as the type parameter for some local type (e.g., `MyStruct<F>`)
-  --> $DIR/incoherent-assoc-imp-trait.rs:13:6
+  --> $DIR/incoherent-assoc-imp-trait.rs:10:6
    |
 LL | impl<F> FnOnce<()> for &F {
    |      ^ type parameter `F` must be used as the type parameter for some local type
diff --git a/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.full_tait.stderr
deleted file mode 100644
index 4effd87120e..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-52843-closure-constrain.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: concrete type differs from previous defining opaque type use
-  --> $DIR/issue-52843-closure-constrain.rs:13:16
-   |
-LL |     let null = || -> Opaque { 0 };
-   |                ^^^^^^^^^^^^^^^^^^ expected `String`, got `i32`
-   |
-note: previous use here
-  --> $DIR/issue-52843-closure-constrain.rs:12:5
-   |
-LL |     fn _unused() -> Opaque { String::new() }
-   |     ^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.min_tait.stderr
deleted file mode 100644
index c2cb4829fb7..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.min_tait.stderr
+++ /dev/null
@@ -1,24 +0,0 @@
-error[E0658]: type alias impl trait is not permitted here
-  --> $DIR/issue-52843-closure-constrain.rs:13:22
-   |
-LL |     let null = || -> Opaque { 0 };
-   |                      ^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
-
-error: concrete type differs from previous defining opaque type use
-  --> $DIR/issue-52843-closure-constrain.rs:13:16
-   |
-LL |     let null = || -> Opaque { 0 };
-   |                ^^^^^^^^^^^^^^^^^^ expected `String`, got `[type error]`
-   |
-note: previous use here
-  --> $DIR/issue-52843-closure-constrain.rs:12:5
-   |
-LL |     fn _unused() -> Opaque { String::new() }
-   |     ^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.rs b/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.rs
index 01f874155fa..50eeff0b18f 100644
--- a/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.rs
@@ -1,16 +1,13 @@
 // Checks to ensure that we properly detect when a closure constrains an opaque type
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
 fn main() {
     type Opaque = impl Debug;
     fn _unused() -> Opaque { String::new() }
-    let null = || -> Opaque { 0 }; //[min_tait]~ ERROR: not permitted here
+    let null = || -> Opaque { 0 };
     //~^ ERROR: concrete type differs from previous defining opaque type use
     println!("{:?}", null());
 }
diff --git a/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.stderr b/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.stderr
new file mode 100644
index 00000000000..d82050e263e
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/issue-52843-closure-constrain.stderr
@@ -0,0 +1,14 @@
+error: concrete type differs from previous defining opaque type use
+  --> $DIR/issue-52843-closure-constrain.rs:10:16
+   |
+LL |     let null = || -> Opaque { 0 };
+   |                ^^^^^^^^^^^^^^^^^^ expected `String`, got `i32`
+   |
+note: previous use here
+  --> $DIR/issue-52843-closure-constrain.rs:9:5
+   |
+LL |     fn _unused() -> Opaque { String::new() }
+   |     ^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/type-alias-impl-trait/issue-52843.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-52843.full_tait.stderr
deleted file mode 100644
index 35ac0993b29..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-52843.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-52843.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0277]: the trait bound `T: Default` is not satisfied
-  --> $DIR/issue-52843.rs:6:15
-   |
-LL | type Foo<T> = impl Default;
-   |               ^^^^^^^^^^^^ the trait `Default` is not implemented for `T`
-   |
-help: consider restricting type parameter `T`
-   |
-LL | type Foo<T: std::default::Default> = impl Default;
-   |           ^^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/type-alias-impl-trait/issue-52843.rs b/src/test/ui/type-alias-impl-trait/issue-52843.rs
index 14f9db6eae2..b24959d7207 100644
--- a/src/test/ui/type-alias-impl-trait/issue-52843.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-52843.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type Foo<T> = impl Default;
 //~^ ERROR: the trait bound `T: Default` is not satisfied
diff --git a/src/test/ui/type-alias-impl-trait/issue-52843.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-52843.stderr
index 9fb760f34c1..8718a57d9d4 100644
--- a/src/test/ui/type-alias-impl-trait/issue-52843.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-52843.stderr
@@ -1,5 +1,5 @@
 error[E0277]: the trait bound `T: Default` is not satisfied
-  --> $DIR/issue-52843.rs:6:15
+  --> $DIR/issue-52843.rs:3:15
    |
 LL | type Foo<T> = impl Default;
    |               ^^^^^^^^^^^^ the trait `Default` is not implemented for `T`
diff --git a/src/test/ui/type-alias-impl-trait/issue-53096.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-53096.full_tait.stderr
deleted file mode 100644
index a8dd6a93d3d..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-53096.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-53096.rs:4:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: fatal error triggered by #[rustc_error]
-  --> $DIR/issue-53096.rs:14:1
-   |
-LL | fn main() {}
-   | ^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-53096.rs b/src/test/ui/type-alias-impl-trait/issue-53096.rs
index 7bb0066b7ef..792bd16527b 100644
--- a/src/test/ui/type-alias-impl-trait/issue-53096.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-53096.rs
@@ -1,8 +1,5 @@
 #![feature(const_impl_trait, const_fn_fn_ptr_basics, rustc_attrs)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type Foo = impl Fn() -> usize;
 const fn bar() -> Foo {
diff --git a/src/test/ui/type-alias-impl-trait/issue-53096.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-53096.stderr
index 4210d0c1cb1..0af3a75f853 100644
--- a/src/test/ui/type-alias-impl-trait/issue-53096.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-53096.stderr
@@ -1,5 +1,5 @@
 error: fatal error triggered by #[rustc_error]
-  --> $DIR/issue-53096.rs:14:1
+  --> $DIR/issue-53096.rs:11:1
    |
 LL | fn main() {}
    | ^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/issue-53598.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-53598.full_tait.stderr
deleted file mode 100644
index ee4b7eef0bd..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-53598.full_tait.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-53598.rs:4:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
-  --> $DIR/issue-53598.rs:23:42
-   |
-LL |       fn foo<T: Debug>(_: T) -> Self::Item {
-   |  __________________________________________^
-LL | |
-LL | |         S::<T>(Default::default())
-LL | |     }
-   | |_____^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-53598.rs b/src/test/ui/type-alias-impl-trait/issue-53598.rs
index 38067a72223..37b330ba4b8 100644
--- a/src/test/ui/type-alias-impl-trait/issue-53598.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-53598.rs
@@ -1,8 +1,5 @@
 // ignore-compare-mode-chalk
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
@@ -21,7 +18,7 @@ impl Foo for S2 {
     type Item = impl Debug;
 
     fn foo<T: Debug>(_: T) -> Self::Item {
-    //~^ Error type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
+        //~^ Error type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
         S::<T>(Default::default())
     }
 }
diff --git a/src/test/ui/type-alias-impl-trait/issue-53598.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-53598.stderr
index 728721b6dbd..4c8144a2359 100644
--- a/src/test/ui/type-alias-impl-trait/issue-53598.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-53598.stderr
@@ -1,5 +1,5 @@
 error: type parameter `T` is part of concrete type but not used in parameter list for the `impl Trait` type alias
-  --> $DIR/issue-53598.rs:23:42
+  --> $DIR/issue-53598.rs:20:42
    |
 LL |       fn foo<T: Debug>(_: T) -> Self::Item {
    |  __________________________________________^
diff --git a/src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.full_tait.stderr
deleted file mode 100644
index b23fed5dadf..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-53678-generator-and-const-fn.rs:4:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: fatal error triggered by #[rustc_error]
-  --> $DIR/issue-53678-generator-and-const-fn.rs:22:1
-   |
-LL | fn main() {}
-   | ^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.rs b/src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.rs
index a8215c41826..176118200e5 100644
--- a/src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.rs
@@ -1,8 +1,5 @@
 #![feature(const_impl_trait, generators, generator_trait, rustc_attrs)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::ops::Generator;
 
diff --git a/src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.stderr
index fabba218353..eb1c9603a60 100644
--- a/src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-53678-generator-and-const-fn.stderr
@@ -1,5 +1,5 @@
 error: fatal error triggered by #[rustc_error]
-  --> $DIR/issue-53678-generator-and-const-fn.rs:22:1
+  --> $DIR/issue-53678-generator-and-const-fn.rs:19:1
    |
 LL | fn main() {}
    | ^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/issue-55099-lifetime-inference.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-55099-lifetime-inference.full_tait.stderr
deleted file mode 100644
index 98778210bfb..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-55099-lifetime-inference.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-55099-lifetime-inference.rs:8:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-55099-lifetime-inference.rs b/src/test/ui/type-alias-impl-trait/issue-55099-lifetime-inference.rs
index 2c24e9d744a..af0780ab0b9 100644
--- a/src/test/ui/type-alias-impl-trait/issue-55099-lifetime-inference.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-55099-lifetime-inference.rs
@@ -3,18 +3,13 @@
 // Tests that we don't incorrectly consider a lifetime to part
 // of the concrete type
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
-trait Future {
-}
+trait Future {}
 
 struct AndThen<F>(F);
 
-impl<F> Future for AndThen<F> {
-}
+impl<F> Future for AndThen<F> {}
 
 struct Foo<'a> {
     x: &'a mut (),
diff --git a/src/test/ui/type-alias-impl-trait/issue-57188-associate-impl-capture.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-57188-associate-impl-capture.full_tait.stderr
deleted file mode 100644
index d31c232fc23..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-57188-associate-impl-capture.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-57188-associate-impl-capture.rs:7:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-57188-associate-impl-capture.rs b/src/test/ui/type-alias-impl-trait/issue-57188-associate-impl-capture.rs
index 645a4c5696d..3a7a5da075f 100644
--- a/src/test/ui/type-alias-impl-trait/issue-57188-associate-impl-capture.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-57188-associate-impl-capture.rs
@@ -2,10 +2,7 @@
 
 // check-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 struct Baz<'a> {
     source: &'a str,
diff --git a/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.full_tait.nll.stderr b/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.full_tait.nll.stderr
deleted file mode 100644
index e2b8b19aeba..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.full_tait.nll.stderr
+++ /dev/null
@@ -1,47 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-57611-trait-alias.rs:8:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: higher-ranked subtype error
-  --> $DIR/issue-57611-trait-alias.rs:24:9
-   |
-LL |         |x| x
-   |         ^^^^^
-
-error: higher-ranked subtype error
-  --> $DIR/issue-57611-trait-alias.rs:24:9
-   |
-LL |         |x| x
-   |         ^^^^^
-
-error[E0308]: mismatched types
-  --> $DIR/issue-57611-trait-alias.rs:20:16
-   |
-LL |     type Bar = impl Baz<Self, Self>;
-   |                ^^^^^^^^^^^^^^^^^^^^ one type is more general than the other
-   |
-   = note: expected type `for<'r> Fn<(&'r X,)>`
-              found type `Fn<(&'static X,)>`
-note: this closure does not fulfill the lifetime requirements
-  --> $DIR/issue-57611-trait-alias.rs:24:9
-   |
-LL |         |x| x
-   |         ^^^^^
-
-error: implementation of `FnOnce` is not general enough
-  --> $DIR/issue-57611-trait-alias.rs:20:16
-   |
-LL |     type Bar = impl Baz<Self, Self>;
-   |                ^^^^^^^^^^^^^^^^^^^^ implementation of `FnOnce` is not general enough
-   |
-   = note: closure with signature `fn(&'static X) -> &'static X` must implement `FnOnce<(&'0 X,)>`, for any lifetime `'0`...
-   = note: ...but it actually implements `FnOnce<(&'static X,)>`
-
-error: aborting due to 4 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.full_tait.stderr
deleted file mode 100644
index 61e8da91bba..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.full_tait.stderr
+++ /dev/null
@@ -1,20 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-57611-trait-alias.rs:8:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: implementation of `FnOnce` is not general enough
-  --> $DIR/issue-57611-trait-alias.rs:20:16
-   |
-LL |     type Bar = impl Baz<Self, Self>;
-   |                ^^^^^^^^^^^^^^^^^^^^ implementation of `FnOnce` is not general enough
-   |
-   = note: closure with signature `fn(&'2 X) -> &X` must implement `FnOnce<(&'1 X,)>`, for any lifetime `'1`...
-   = note: ...but it actually implements `FnOnce<(&'2 X,)>`, for some specific lifetime `'2`
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.min_tait.nll.stderr b/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.nll.stderr
index 3a4d1d90c03..a4ccae4eb7e 100644
--- a/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.min_tait.nll.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.nll.stderr
@@ -1,17 +1,17 @@
 error: higher-ranked subtype error
-  --> $DIR/issue-57611-trait-alias.rs:24:9
+  --> $DIR/issue-57611-trait-alias.rs:21:9
    |
 LL |         |x| x
    |         ^^^^^
 
 error: higher-ranked subtype error
-  --> $DIR/issue-57611-trait-alias.rs:24:9
+  --> $DIR/issue-57611-trait-alias.rs:21:9
    |
 LL |         |x| x
    |         ^^^^^
 
 error[E0308]: mismatched types
-  --> $DIR/issue-57611-trait-alias.rs:20:16
+  --> $DIR/issue-57611-trait-alias.rs:17:16
    |
 LL |     type Bar = impl Baz<Self, Self>;
    |                ^^^^^^^^^^^^^^^^^^^^ one type is more general than the other
@@ -19,13 +19,13 @@ LL |     type Bar = impl Baz<Self, Self>;
    = note: expected type `for<'r> Fn<(&'r X,)>`
               found type `Fn<(&'static X,)>`
 note: this closure does not fulfill the lifetime requirements
-  --> $DIR/issue-57611-trait-alias.rs:24:9
+  --> $DIR/issue-57611-trait-alias.rs:21:9
    |
 LL |         |x| x
    |         ^^^^^
 
 error: implementation of `FnOnce` is not general enough
-  --> $DIR/issue-57611-trait-alias.rs:20:16
+  --> $DIR/issue-57611-trait-alias.rs:17:16
    |
 LL |     type Bar = impl Baz<Self, Self>;
    |                ^^^^^^^^^^^^^^^^^^^^ implementation of `FnOnce` is not general enough
diff --git a/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.rs b/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.rs
index 508ecdd88a4..a55fbf9c48a 100644
--- a/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.rs
@@ -3,10 +3,7 @@
 // FIXME: This should compile, but it currently doesn't
 
 #![feature(trait_alias)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait Foo {
     type Bar: Baz<Self, Self>;
diff --git a/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.stderr
index f65e91e52c7..f87beb66d99 100644
--- a/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-57611-trait-alias.stderr
@@ -1,5 +1,5 @@
 error: implementation of `FnOnce` is not general enough
-  --> $DIR/issue-57611-trait-alias.rs:20:16
+  --> $DIR/issue-57611-trait-alias.rs:17:16
    |
 LL |     type Bar = impl Baz<Self, Self>;
    |                ^^^^^^^^^^^^^^^^^^^^ implementation of `FnOnce` is not general enough
diff --git a/src/test/ui/type-alias-impl-trait/issue-57700.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-57700.full_tait.stderr
deleted file mode 100644
index 4336532cdbb..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-57700.full_tait.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-57700.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: type parameter `impl Deref<Target = Self>` is part of concrete type but not used in parameter list for the `impl Trait` type alias
-  --> $DIR/issue-57700.rs:19:58
-   |
-LL |       fn foo(self: impl Deref<Target = Self>) -> Self::Bar {
-   |  __________________________________________________________^
-LL | |
-LL | |         self
-LL | |     }
-   | |_____^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-57700.rs b/src/test/ui/type-alias-impl-trait/issue-57700.rs
index 476a188cde6..f1db4d3291b 100644
--- a/src/test/ui/type-alias-impl-trait/issue-57700.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-57700.rs
@@ -1,9 +1,6 @@
 // ignore-compare-mode-chalk
 #![feature(arbitrary_self_types)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::ops::Deref;
 
@@ -17,7 +14,7 @@ impl<C> Foo for C {
     type Bar = impl Foo;
 
     fn foo(self: impl Deref<Target = Self>) -> Self::Bar {
-    //~^ Error type parameter `impl Deref<Target = Self>` is part of concrete type but not used in parameter list for the `impl Trait` type alias
+        //~^ Error type parameter `impl Deref<Target = Self>` is part of concrete type but not used in parameter list for the `impl Trait` type alias
         self
     }
 }
diff --git a/src/test/ui/type-alias-impl-trait/issue-57700.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-57700.stderr
index 47ab31cd797..c701e3e74ef 100644
--- a/src/test/ui/type-alias-impl-trait/issue-57700.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-57700.stderr
@@ -1,5 +1,5 @@
 error: type parameter `impl Deref<Target = Self>` is part of concrete type but not used in parameter list for the `impl Trait` type alias
-  --> $DIR/issue-57700.rs:19:58
+  --> $DIR/issue-57700.rs:16:58
    |
 LL |       fn foo(self: impl Deref<Target = Self>) -> Self::Bar {
    |  __________________________________________________________^
diff --git a/src/test/ui/type-alias-impl-trait/issue-57807-associated-type.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-57807-associated-type.full_tait.stderr
deleted file mode 100644
index b35361c89a4..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-57807-associated-type.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-57807-associated-type.rs:7:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-57807-associated-type.rs b/src/test/ui/type-alias-impl-trait/issue-57807-associated-type.rs
index 0a021149e70..fcab2c7db26 100644
--- a/src/test/ui/type-alias-impl-trait/issue-57807-associated-type.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-57807-associated-type.rs
@@ -2,10 +2,7 @@
 // that we properly unify associated types within
 // a type alias impl trait
 // check-pass
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait Bar {
     type A;
diff --git a/src/test/ui/type-alias-impl-trait/issue-58887.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-58887.full_tait.stderr
deleted file mode 100644
index f0fd5f2f056..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-58887.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-58887.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-58887.rs b/src/test/ui/type-alias-impl-trait/issue-58887.rs
index f0803a663de..96ac7860283 100644
--- a/src/test/ui/type-alias-impl-trait/issue-58887.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-58887.rs
@@ -1,9 +1,6 @@
 // run-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait UnwrapItemsExt {
     type Iter;
diff --git a/src/test/ui/type-alias-impl-trait/issue-58951.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-58951.full_tait.stderr
deleted file mode 100644
index 164b8881714..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-58951.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-58951.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-58951.rs b/src/test/ui/type-alias-impl-trait/issue-58951.rs
index 3b1ea0d676b..7303cbab4a8 100644
--- a/src/test/ui/type-alias-impl-trait/issue-58951.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-58951.rs
@@ -1,13 +1,12 @@
 // check-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type A = impl Iterator;
 
-fn def_a() -> A { 0..1 }
+fn def_a() -> A {
+    0..1
+}
 
 pub fn use_a() {
     def_a().map(|x| x);
diff --git a/src/test/ui/type-alias-impl-trait/issue-60371.stderr b/src/test/ui/type-alias-impl-trait/issue-60371.stderr
index a9df74689df..9abdd70bbd9 100644
--- a/src/test/ui/type-alias-impl-trait/issue-60371.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-60371.stderr
@@ -5,7 +5,7 @@ LL |     type Item = impl Bug;
    |                 ^^^^^^^^
    |
    = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
+   = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
 
 error[E0658]: type alias impl trait is not permitted here
   --> $DIR/issue-60371.rs:13:40
diff --git a/src/test/ui/type-alias-impl-trait/issue-60407.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-60407.full_tait.stderr
deleted file mode 100644
index 9d3f366ad81..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-60407.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-60407.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: fatal error triggered by #[rustc_error]
-  --> $DIR/issue-60407.rs:11:1
-   |
-LL | fn main() {
-   | ^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-60407.rs b/src/test/ui/type-alias-impl-trait/issue-60407.rs
index 3c6b873b4ca..b833429c769 100644
--- a/src/test/ui/type-alias-impl-trait/issue-60407.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-60407.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait, rustc_attrs)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait, rustc_attrs)]
 
 type Debuggable = impl core::fmt::Debug;
 
diff --git a/src/test/ui/type-alias-impl-trait/issue-60407.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-60407.stderr
index 1a3ceafa3e2..fecee27797a 100644
--- a/src/test/ui/type-alias-impl-trait/issue-60407.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-60407.stderr
@@ -1,5 +1,5 @@
 error: fatal error triggered by #[rustc_error]
-  --> $DIR/issue-60407.rs:11:1
+  --> $DIR/issue-60407.rs:8:1
    |
 LL | fn main() {
    | ^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/issue-60564.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-60564.full_tait.stderr
deleted file mode 100644
index 72b6b0648f9..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-60564.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-60564.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: non-defining opaque type use in defining scope
-  --> $DIR/issue-60564.rs:22:34
-   |
-LL |     fn iter_bits(self, n: u8) -> Self::BitsIter {
-   |                                  ^^^^^^^^^^^^^^
-   |
-note: used non-generic type `u8` for generic parameter
-  --> $DIR/issue-60564.rs:11:25
-   |
-LL | type IterBitsIter<T, E, I> = impl std::iter::Iterator<Item = I>;
-   |                         ^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-60564.rs b/src/test/ui/type-alias-impl-trait/issue-60564.rs
index 10fbbd2ef29..78def0d1136 100644
--- a/src/test/ui/type-alias-impl-trait/issue-60564.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-60564.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait IterBits {
     type BitsIter: Iterator<Item = u8>;
diff --git a/src/test/ui/type-alias-impl-trait/issue-60564.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-60564.stderr
index 72668c8056f..66fa862ef9d 100644
--- a/src/test/ui/type-alias-impl-trait/issue-60564.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-60564.stderr
@@ -1,11 +1,11 @@
 error: non-defining opaque type use in defining scope
-  --> $DIR/issue-60564.rs:22:34
+  --> $DIR/issue-60564.rs:19:34
    |
 LL |     fn iter_bits(self, n: u8) -> Self::BitsIter {
    |                                  ^^^^^^^^^^^^^^
    |
 note: used non-generic type `u8` for generic parameter
-  --> $DIR/issue-60564.rs:11:25
+  --> $DIR/issue-60564.rs:8:25
    |
 LL | type IterBitsIter<T, E, I> = impl std::iter::Iterator<Item = I>;
    |                         ^
diff --git a/src/test/ui/type-alias-impl-trait/issue-62000-associate-impl-trait-lifetimes.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-62000-associate-impl-trait-lifetimes.full_tait.stderr
deleted file mode 100644
index 1fc38d2f549..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-62000-associate-impl-trait-lifetimes.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-62000-associate-impl-trait-lifetimes.rs:7:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-62000-associate-impl-trait-lifetimes.rs b/src/test/ui/type-alias-impl-trait/issue-62000-associate-impl-trait-lifetimes.rs
index 4d9ca47b947..36779a0ce89 100644
--- a/src/test/ui/type-alias-impl-trait/issue-62000-associate-impl-trait-lifetimes.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-62000-associate-impl-trait-lifetimes.rs
@@ -2,10 +2,7 @@
 
 // check-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait MyTrait {
     type AssocType: Send;
diff --git a/src/test/ui/type-alias-impl-trait/issue-63263-closure-return.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-63263-closure-return.full_tait.stderr
deleted file mode 100644
index 1c6759e3454..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-63263-closure-return.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-63263-closure-return.rs:9:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-63263-closure-return.rs b/src/test/ui/type-alias-impl-trait/issue-63263-closure-return.rs
index 3b8f6afcb00..7414611a748 100644
--- a/src/test/ui/type-alias-impl-trait/issue-63263-closure-return.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-63263-closure-return.rs
@@ -4,8 +4,7 @@
 
 // check-pass
 
-#![feature(min_type_alias_impl_trait, type_alias_impl_trait)]
-//~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 pub type Closure = impl FnOnce();
 
diff --git a/src/test/ui/type-alias-impl-trait/issue-63263-closure-return.stderr b/src/test/ui/type-alias-impl-trait/issue-63263-closure-return.stderr
deleted file mode 100644
index e1f4ecd3b98..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-63263-closure-return.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-63263-closure-return.rs:7:39
-   |
-LL | #![feature(min_type_alias_impl_trait, type_alias_impl_trait)]
-   |                                       ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-63279.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-63279.full_tait.stderr
deleted file mode 100644
index 53a0016c08e..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-63279.full_tait.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-63279.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0271]: type mismatch resolving `<[closure@$DIR/issue-63279.rs:11:5: 11:28] as FnOnce<()>>::Output == ()`
-  --> $DIR/issue-63279.rs:8:16
-   |
-LL | type Closure = impl FnOnce();
-   |                ^^^^^^^^^^^^^ expected `()`, found opaque type
-   |
-   = note: expected unit type `()`
-            found opaque type `impl FnOnce<()>`
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0271`.
diff --git a/src/test/ui/type-alias-impl-trait/issue-63279.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-63279.min_tait.stderr
deleted file mode 100644
index be386ab90ea..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-63279.min_tait.stderr
+++ /dev/null
@@ -1,22 +0,0 @@
-error[E0658]: type alias impl trait is not permitted here
-  --> $DIR/issue-63279.rs:11:11
-   |
-LL |     || -> Closure { || () }
-   |           ^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0271]: type mismatch resolving `<[closure@$DIR/issue-63279.rs:11:5: 11:28] as FnOnce<()>>::Output == ()`
-  --> $DIR/issue-63279.rs:8:16
-   |
-LL | type Closure = impl FnOnce();
-   |                ^^^^^^^^^^^^^ expected `()`, found opaque type
-   |
-   = note: expected unit type `()`
-            found opaque type `impl FnOnce<()>`
-
-error: aborting due to 2 previous errors
-
-Some errors have detailed explanations: E0271, E0658.
-For more information about an error, try `rustc --explain E0271`.
diff --git a/src/test/ui/type-alias-impl-trait/issue-63279.rs b/src/test/ui/type-alias-impl-trait/issue-63279.rs
index 086715626bc..b97192a2aed 100644
--- a/src/test/ui/type-alias-impl-trait/issue-63279.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-63279.rs
@@ -1,14 +1,11 @@
 // compile-flags: -Zsave-analysis
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type Closure = impl FnOnce(); //~ ERROR: type mismatch resolving
 
 fn c() -> Closure {
-    || -> Closure { || () } //[min_tait]~ ERROR: not permitted here
+    || -> Closure { || () }
 }
 
 fn main() {}
diff --git a/src/test/ui/type-alias-impl-trait/issue-63279.stderr b/src/test/ui/type-alias-impl-trait/issue-63279.stderr
new file mode 100644
index 00000000000..63a83a60ff8
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/issue-63279.stderr
@@ -0,0 +1,12 @@
+error[E0271]: type mismatch resolving `<[closure@$DIR/issue-63279.rs:8:5: 8:28] as FnOnce<()>>::Output == ()`
+  --> $DIR/issue-63279.rs:5:16
+   |
+LL | type Closure = impl FnOnce();
+   |                ^^^^^^^^^^^^^ expected `()`, found opaque type
+   |
+   = note: expected unit type `()`
+            found opaque type `impl FnOnce<()>`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0271`.
diff --git a/src/test/ui/type-alias-impl-trait/issue-63355.rs b/src/test/ui/type-alias-impl-trait/issue-63355.rs
index 8762d189c73..ff4fd5dcec7 100644
--- a/src/test/ui/type-alias-impl-trait/issue-63355.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-63355.rs
@@ -1,4 +1,4 @@
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 #![feature(type_alias_impl_trait)]
 #![allow(incomplete_features)]
 
@@ -28,7 +28,7 @@ impl Bar for () {
     }
 }
 
-// FIXME(#86731): The below is illegal use of `min_type_alias_impl_trait`
+// FIXME(#86731): The below is illegal use of `type_alias_impl_trait`
 // but the compiler doesn't report it, we should fix it.
 pub type FooImpl = impl Foo;
 pub type BarImpl = impl Bar<Foo = FooImpl>;
diff --git a/src/test/ui/type-alias-impl-trait/issue-63677-type-alias-coherence.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-63677-type-alias-coherence.full_tait.stderr
deleted file mode 100644
index fc8d8147167..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-63677-type-alias-coherence.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-63677-type-alias-coherence.rs:7:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-63677-type-alias-coherence.rs b/src/test/ui/type-alias-impl-trait/issue-63677-type-alias-coherence.rs
index 62d11ad38d6..28f4a85c9f2 100644
--- a/src/test/ui/type-alias-impl-trait/issue-63677-type-alias-coherence.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-63677-type-alias-coherence.rs
@@ -2,10 +2,7 @@
 // Regression test for issue #63677 - ensure that
 // coherence checking can properly handle 'impl trait'
 // in type aliases
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 pub trait Trait {}
 pub struct S1<T>(T);
diff --git a/src/test/ui/type-alias-impl-trait/issue-65384.rs b/src/test/ui/type-alias-impl-trait/issue-65384.rs
index 63666c497c6..273928c4d66 100644
--- a/src/test/ui/type-alias-impl-trait/issue-65384.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-65384.rs
@@ -1,4 +1,4 @@
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 #![feature(type_alias_impl_trait)]
 #![allow(incomplete_features)]
 
diff --git a/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.full_tait.stderr
deleted file mode 100644
index ee26789d204..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-65679-inst-opaque-ty-from-val-twice.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: fatal error triggered by #[rustc_error]
-  --> $DIR/issue-65679-inst-opaque-ty-from-val-twice.rs:18:1
-   |
-LL | fn main() {
-   | ^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.min_tait.stderr
deleted file mode 100644
index 5b6c4b5cda1..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.min_tait.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-error[E0658]: type alias impl trait is not permitted here
-  --> $DIR/issue-65679-inst-opaque-ty-from-val-twice.rs:20:13
-   |
-LL |     take(|| {});
-   |             ^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
-
-error[E0658]: type alias impl trait is not permitted here
-  --> $DIR/issue-65679-inst-opaque-ty-from-val-twice.rs:22:13
-   |
-LL |     take(|| {});
-   |             ^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(type_alias_impl_trait)]` to the crate attributes to enable
-
-error: aborting due to 2 previous errors
-
-For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.rs b/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.rs
index d37be640e0b..0f0cd4e9227 100644
--- a/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.rs
@@ -1,9 +1,6 @@
 // compile-flags: -Zsave-analysis
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait, rustc_attrs)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait, rustc_attrs)]
 
 type T = impl Sized;
 // The concrete type referred by impl-trait-type-alias(`T`) is guaranteed
@@ -16,9 +13,7 @@ fn take(_: fn() -> T) {}
 
 #[rustc_error]
 fn main() {
-    //[full_tait]~^ ERROR fatal error triggered by #[rustc_error]
+    //~^ ERROR fatal error triggered by #[rustc_error]
     take(|| {});
-    //[min_tait]~^ ERROR not permitted here
     take(|| {});
-    //[min_tait]~^ ERROR not permitted here
 }
diff --git a/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.stderr b/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.stderr
new file mode 100644
index 00000000000..f3683f2bf96
--- /dev/null
+++ b/src/test/ui/type-alias-impl-trait/issue-65679-inst-opaque-ty-from-val-twice.stderr
@@ -0,0 +1,8 @@
+error: fatal error triggered by #[rustc_error]
+  --> $DIR/issue-65679-inst-opaque-ty-from-val-twice.rs:15:1
+   |
+LL | fn main() {
+   | ^^^^^^^^^
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/type-alias-impl-trait/issue-65918.rs b/src/test/ui/type-alias-impl-trait/issue-65918.rs
index ab05e4b1cbe..af6d5010920 100644
--- a/src/test/ui/type-alias-impl-trait/issue-65918.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-65918.rs
@@ -2,10 +2,7 @@
 
 // build-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::marker::PhantomData;
 
diff --git a/src/test/ui/type-alias-impl-trait/issue-66580-closure-coherence.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-66580-closure-coherence.full_tait.stderr
deleted file mode 100644
index 2fc46574512..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-66580-closure-coherence.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-66580-closure-coherence.rs:7:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-66580-closure-coherence.rs b/src/test/ui/type-alias-impl-trait/issue-66580-closure-coherence.rs
index 7b3ddc78868..d97270c3124 100644
--- a/src/test/ui/type-alias-impl-trait/issue-66580-closure-coherence.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-66580-closure-coherence.rs
@@ -2,10 +2,7 @@
 // Ensures that we don't try to determine whether a closure
 // is foreign when it's the underlying type of an opaque type
 // check-pass
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type Closure = impl FnOnce();
 
@@ -13,7 +10,9 @@ fn closure() -> Closure {
     || {}
 }
 
-struct Wrap<T> { f: T }
+struct Wrap<T> {
+    f: T,
+}
 
 impl Wrap<Closure> {}
 
diff --git a/src/test/ui/type-alias-impl-trait/issue-67844-nested-opaque.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-67844-nested-opaque.full_tait.stderr
deleted file mode 100644
index 81e27da0949..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-67844-nested-opaque.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-67844-nested-opaque.rs:8:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-67844-nested-opaque.rs b/src/test/ui/type-alias-impl-trait/issue-67844-nested-opaque.rs
index b9e29a01cdd..cd219328a99 100644
--- a/src/test/ui/type-alias-impl-trait/issue-67844-nested-opaque.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-67844-nested-opaque.rs
@@ -3,12 +3,11 @@
 // Ensures that we properly handle nested TAIT occurrences
 // with generic parameters
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
-trait WithAssoc { type AssocType; }
+trait WithAssoc {
+    type AssocType;
+}
 
 trait WithParam<A> {}
 
@@ -23,7 +22,6 @@ impl WithAssoc for MyStruct {
     type AssocType = MyParam;
 }
 
-
 fn my_fun<A>() -> Return<A> {
     MyStruct
 }
diff --git a/src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.full_tait.stderr
deleted file mode 100644
index 8b1ad19ac0c..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-68368-non-defining-use.rs:7:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: non-defining opaque type use in defining scope
-  --> $DIR/issue-68368-non-defining-use.rs:11:15
-   |
-LL | fn f<'a>() -> Alias<'a, ()> {}
-   |               ^^^^^^^^^^^^^
-   |
-note: used non-generic type `()` for generic parameter
-  --> $DIR/issue-68368-non-defining-use.rs:10:16
-   |
-LL | type Alias<'a, U> = impl Trait<U>;
-   |                ^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.rs b/src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.rs
index 92465076733..3b6decbe9c6 100644
--- a/src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.rs
@@ -2,10 +2,7 @@
 // Ensures that we don't ICE when emitting an error
 // for a non-defining use when lifetimes are involved
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 trait Trait<T> {}
 type Alias<'a, U> = impl Trait<U>;
 fn f<'a>() -> Alias<'a, ()> {}
diff --git a/src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.stderr
index 01ae457851f..c2fa54f50f8 100644
--- a/src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-68368-non-defining-use.stderr
@@ -1,11 +1,11 @@
 error: non-defining opaque type use in defining scope
-  --> $DIR/issue-68368-non-defining-use.rs:11:15
+  --> $DIR/issue-68368-non-defining-use.rs:8:15
    |
 LL | fn f<'a>() -> Alias<'a, ()> {}
    |               ^^^^^^^^^^^^^
    |
 note: used non-generic type `()` for generic parameter
-  --> $DIR/issue-68368-non-defining-use.rs:10:16
+  --> $DIR/issue-68368-non-defining-use.rs:7:16
    |
 LL | type Alias<'a, U> = impl Trait<U>;
    |                ^
diff --git a/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.full_tait.stderr
deleted file mode 100644
index 7f120af2408..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.full_tait.stderr
+++ /dev/null
@@ -1,20 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-69136-inner-lifetime-resolve-error.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0261]: use of undeclared lifetime name `'a`
-  --> $DIR/issue-69136-inner-lifetime-resolve-error.rs:20:65
-   |
-LL | type Return<A> = impl WithAssoc<A, AssocType = impl SomeTrait + 'a>;
-   |             -                                                   ^^ undeclared lifetime
-   |             |
-   |             help: consider introducing lifetime `'a` here: `'a,`
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0261`.
diff --git a/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.rs b/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.rs
index 61161d44e51..6732902c09a 100644
--- a/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.rs
@@ -1,9 +1,6 @@
 // Regression test for #69136
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait SomeTrait {}
 
diff --git a/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.stderr
index e1fc94c3472..fe45e39d938 100644
--- a/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-error.stderr
@@ -1,5 +1,5 @@
 error[E0261]: use of undeclared lifetime name `'a`
-  --> $DIR/issue-69136-inner-lifetime-resolve-error.rs:20:65
+  --> $DIR/issue-69136-inner-lifetime-resolve-error.rs:17:65
    |
 LL | type Return<A> = impl WithAssoc<A, AssocType = impl SomeTrait + 'a>;
    |             -                                                   ^^ undeclared lifetime
diff --git a/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-ok.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-ok.full_tait.stderr
deleted file mode 100644
index 61e2e20dfd0..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-ok.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-69136-inner-lifetime-resolve-ok.rs:7:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-ok.rs b/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-ok.rs
index 01df967a4a5..a6916eda8b0 100644
--- a/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-ok.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-69136-inner-lifetime-resolve-ok.rs
@@ -2,10 +2,7 @@
 
 // check-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait SomeTrait {}
 
diff --git a/src/test/ui/type-alias-impl-trait/issue-69323.full.stderr b/src/test/ui/type-alias-impl-trait/issue-69323.full.stderr
deleted file mode 100644
index 71cc6f61c37..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-69323.full.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-69323.rs:5:27
-   |
-LL | #![cfg_attr(full, feature(type_alias_impl_trait))]
-   |                           ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-69323.rs b/src/test/ui/type-alias-impl-trait/issue-69323.rs
index 824558c1b34..a9bd6daf2ac 100644
--- a/src/test/ui/type-alias-impl-trait/issue-69323.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-69323.rs
@@ -1,9 +1,6 @@
 // check-pass
 
-// revisions: min full
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full, feature(type_alias_impl_trait))]
-//[full]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::iter::{once, Chain};
 
diff --git a/src/test/ui/type-alias-impl-trait/issue-70121.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-70121.full_tait.stderr
deleted file mode 100644
index 9fe2e2cf88e..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-70121.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-70121.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-70121.rs b/src/test/ui/type-alias-impl-trait/issue-70121.rs
index 150eca46975..dff0d89d465 100644
--- a/src/test/ui/type-alias-impl-trait/issue-70121.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-70121.rs
@@ -1,9 +1,6 @@
 // check-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 pub type Successors<'a> = impl Iterator<Item = &'a ()>;
 
diff --git a/src/test/ui/type-alias-impl-trait/issue-74244.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-74244.full_tait.stderr
deleted file mode 100644
index e7729e47c36..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-74244.full_tait.stderr
+++ /dev/null
@@ -1,18 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-74244.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/issue-74244.rs:12:6
-   |
-LL | impl<T> Allocator for DefaultAllocator {
-   |      ^ unconstrained type parameter
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0207`.
diff --git a/src/test/ui/type-alias-impl-trait/issue-74244.rs b/src/test/ui/type-alias-impl-trait/issue-74244.rs
index 890eb23ef95..bb4104b3d25 100644
--- a/src/test/ui/type-alias-impl-trait/issue-74244.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-74244.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait Allocator {
     type Buffer;
diff --git a/src/test/ui/type-alias-impl-trait/issue-74244.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-74244.stderr
index 6ee8c58826d..ff6bacd277e 100644
--- a/src/test/ui/type-alias-impl-trait/issue-74244.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-74244.stderr
@@ -1,5 +1,5 @@
 error[E0207]: the type parameter `T` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/issue-74244.rs:12:6
+  --> $DIR/issue-74244.rs:9:6
    |
 LL | impl<T> Allocator for DefaultAllocator {
    |      ^ unconstrained type parameter
diff --git a/src/test/ui/type-alias-impl-trait/issue-74761-2.rs b/src/test/ui/type-alias-impl-trait/issue-74761-2.rs
index 4b0f2afee54..4345b5d886e 100644
--- a/src/test/ui/type-alias-impl-trait/issue-74761-2.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-74761-2.rs
@@ -1,6 +1,5 @@
 #![feature(member_constraints)]
 #![feature(type_alias_impl_trait)]
-//~^ WARN incomplete
 
 pub trait A {
     type B;
@@ -10,8 +9,6 @@ impl<'a, 'b> A for () {
     //~^ ERROR the lifetime parameter `'a` is not constrained
     //~| ERROR the lifetime parameter `'b` is not constrained
     type B = impl core::fmt::Debug;
-    //~^ ERROR is unstable
-
 
     fn f(&self) -> Self::B {}
 }
diff --git a/src/test/ui/type-alias-impl-trait/issue-74761-2.stderr b/src/test/ui/type-alias-impl-trait/issue-74761-2.stderr
index 4506a6e23d5..7a321458b0b 100644
--- a/src/test/ui/type-alias-impl-trait/issue-74761-2.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-74761-2.stderr
@@ -1,34 +1,15 @@
-error[E0658]: `impl Trait` in type aliases is unstable
-  --> $DIR/issue-74761-2.rs:12:14
-   |
-LL |     type B = impl core::fmt::Debug;
-   |              ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-   = help: add `#![feature(min_type_alias_impl_trait)]` to the crate attributes to enable
-
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-74761-2.rs:2:12
-   |
-LL | #![feature(type_alias_impl_trait)]
-   |            ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
 error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/issue-74761-2.rs:9:6
+  --> $DIR/issue-74761-2.rs:8:6
    |
 LL | impl<'a, 'b> A for () {
    |      ^^ unconstrained lifetime parameter
 
 error[E0207]: the lifetime parameter `'b` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/issue-74761-2.rs:9:10
+  --> $DIR/issue-74761-2.rs:8:10
    |
 LL | impl<'a, 'b> A for () {
    |          ^^ unconstrained lifetime parameter
 
-error: aborting due to 3 previous errors; 1 warning emitted
+error: aborting due to 2 previous errors
 
-Some errors have detailed explanations: E0207, E0658.
-For more information about an error, try `rustc --explain E0207`.
+For more information about this error, try `rustc --explain E0207`.
diff --git a/src/test/ui/type-alias-impl-trait/issue-74761.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-74761.full_tait.stderr
deleted file mode 100644
index 05b63a00dfb..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-74761.full_tait.stderr
+++ /dev/null
@@ -1,24 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-74761.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/issue-74761.rs:10:6
-   |
-LL | impl<'a, 'b> A for () {
-   |      ^^ unconstrained lifetime parameter
-
-error[E0207]: the lifetime parameter `'b` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/issue-74761.rs:10:10
-   |
-LL | impl<'a, 'b> A for () {
-   |          ^^ unconstrained lifetime parameter
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0207`.
diff --git a/src/test/ui/type-alias-impl-trait/issue-74761.rs b/src/test/ui/type-alias-impl-trait/issue-74761.rs
index bbc67ecc97a..d26ca5c3ead 100644
--- a/src/test/ui/type-alias-impl-trait/issue-74761.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-74761.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 pub trait A {
     type B;
diff --git a/src/test/ui/type-alias-impl-trait/issue-74761.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-74761.stderr
index ad111e23b15..1d016fe070f 100644
--- a/src/test/ui/type-alias-impl-trait/issue-74761.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-74761.stderr
@@ -1,11 +1,11 @@
 error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/issue-74761.rs:10:6
+  --> $DIR/issue-74761.rs:7:6
    |
 LL | impl<'a, 'b> A for () {
    |      ^^ unconstrained lifetime parameter
 
 error[E0207]: the lifetime parameter `'b` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/issue-74761.rs:10:10
+  --> $DIR/issue-74761.rs:7:10
    |
 LL | impl<'a, 'b> A for () {
    |          ^^ unconstrained lifetime parameter
diff --git a/src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.full_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.full_tait.stderr
deleted file mode 100644
index 8fb4a3b6625..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-76202-trait-impl-for-tait.rs:6:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: cannot implement trait on type alias impl trait
-  --> $DIR/issue-76202-trait-impl-for-tait.rs:19:1
-   |
-LL | impl Test for F {
-   | ^^^^^^^^^^^^^^^
-   |
-note: type alias impl trait defined here
-  --> $DIR/issue-76202-trait-impl-for-tait.rs:12:10
-   |
-LL | type F = impl Dummy;
-   |          ^^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.rs b/src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.rs
index 276c770fe48..fb56cc54d63 100644
--- a/src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.rs
@@ -1,10 +1,7 @@
 // Regression test for issue #76202
 // Tests that we don't ICE when we have a trait impl on a TAIT.
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait Dummy {}
 impl Dummy for () {}
@@ -16,7 +13,8 @@ trait Test {
     fn test(self);
 }
 
-impl Test for F { //~ ERROR cannot implement trait
+impl Test for F {
+    //~^ ERROR cannot implement trait
     fn test(self) {}
 }
 
diff --git a/src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.min_tait.stderr b/src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.stderr
index 3754553772c..8689ee53660 100644
--- a/src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/issue-76202-trait-impl-for-tait.stderr
@@ -1,11 +1,11 @@
 error: cannot implement trait on type alias impl trait
-  --> $DIR/issue-76202-trait-impl-for-tait.rs:19:1
+  --> $DIR/issue-76202-trait-impl-for-tait.rs:16:1
    |
 LL | impl Test for F {
    | ^^^^^^^^^^^^^^^
    |
 note: type alias impl trait defined here
-  --> $DIR/issue-76202-trait-impl-for-tait.rs:12:10
+  --> $DIR/issue-76202-trait-impl-for-tait.rs:9:10
    |
 LL | type F = impl Dummy;
    |          ^^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/issue-78450.rs b/src/test/ui/type-alias-impl-trait/issue-78450.rs
index 640f929f8f1..fccbfb74fa2 100644
--- a/src/test/ui/type-alias-impl-trait/issue-78450.rs
+++ b/src/test/ui/type-alias-impl-trait/issue-78450.rs
@@ -1,8 +1,6 @@
 // check-pass
 
-#![feature(min_type_alias_impl_trait)]
 #![feature(type_alias_impl_trait)]
-//~^ WARNING: the feature `type_alias_impl_trait` is incomplete
 
 pub trait AssociatedImpl {
     type ImplTrait;
diff --git a/src/test/ui/type-alias-impl-trait/issue-78450.stderr b/src/test/ui/type-alias-impl-trait/issue-78450.stderr
deleted file mode 100644
index efccf6241fb..00000000000
--- a/src/test/ui/type-alias-impl-trait/issue-78450.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-78450.rs:4:12
-   |
-LL | #![feature(type_alias_impl_trait)]
-   |            ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-pass.rs b/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-pass.rs
index ecad910f7d5..f412b2d0e7d 100644
--- a/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-pass.rs
+++ b/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn-pass.rs
@@ -1,5 +1,5 @@
 // check-pass
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 type X<A: ToString + Clone, B: ToString + Clone> = impl ToString;
 
diff --git a/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn.rs b/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn.rs
index 67351e20159..371dff475d1 100644
--- a/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn.rs
+++ b/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn.rs
@@ -2,7 +2,7 @@
 // This test used to cause unsoundness, since one of the two possible
 // resolutions was chosen at random instead of erroring due to conflicts.
 
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 type X<A, B> = impl Into<&'static A>;
 //~^ ERROR the trait bound `&'static B: From<&A>` is not satisfied
diff --git a/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn2.rs b/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn2.rs
index 11756017ad8..06e1990fd7f 100644
--- a/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn2.rs
+++ b/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn2.rs
@@ -2,7 +2,7 @@
 // This test used to cause unsoundness, since one of the two possible
 // resolutions was chosen at random instead of erroring due to conflicts.
 
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 type X<A: ToString + Clone, B: ToString + Clone> = impl ToString;
 
diff --git a/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn3.rs b/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn3.rs
index 5f25365666c..bcd9aeff6b4 100644
--- a/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn3.rs
+++ b/src/test/ui/type-alias-impl-trait/multiple-def-uses-in-one-fn3.rs
@@ -2,7 +2,7 @@
 // This test used to cause unsoundness, since one of the two possible
 // resolutions was chosen at random instead of erroring due to conflicts.
 
-#![feature(min_type_alias_impl_trait)]
+#![feature(type_alias_impl_trait)]
 
 type X<A: ToString + Clone, B: ToString + Clone> = impl ToString;
 
diff --git a/src/test/ui/type-alias-impl-trait/nested_type_alias_impl_trait.full_tait.stderr b/src/test/ui/type-alias-impl-trait/nested_type_alias_impl_trait.full_tait.stderr
deleted file mode 100644
index 5e4307be17a..00000000000
--- a/src/test/ui/type-alias-impl-trait/nested_type_alias_impl_trait.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/nested_type_alias_impl_trait.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/nested_type_alias_impl_trait.rs b/src/test/ui/type-alias-impl-trait/nested_type_alias_impl_trait.rs
index f03563dfed6..6282264d8fe 100644
--- a/src/test/ui/type-alias-impl-trait/nested_type_alias_impl_trait.rs
+++ b/src/test/ui/type-alias-impl-trait/nested_type_alias_impl_trait.rs
@@ -1,21 +1,18 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 // build-pass (FIXME(62277): could be check-pass?)
 mod my_mod {
-  use std::fmt::Debug;
+    use std::fmt::Debug;
 
-  pub type Foo = impl Debug;
-  pub type Foot = impl Debug;
+    pub type Foo = impl Debug;
+    pub type Foot = impl Debug;
 
-  pub fn get_foo() -> Foo {
-      5i32
-  }
+    pub fn get_foo() -> Foo {
+        5i32
+    }
 
-  pub fn get_foot() -> Foot {
-      get_foo()
-  }
+    pub fn get_foot() -> Foot {
+        get_foo()
+    }
 }
 
 fn main() {
diff --git a/src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.full_tait.stderr b/src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.full_tait.stderr
deleted file mode 100644
index 45c95469e95..00000000000
--- a/src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.full_tait.stderr
+++ /dev/null
@@ -1,33 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/never_reveal_concrete_type.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0308]: mismatched types
-  --> $DIR/never_reveal_concrete_type.rs:16:27
-   |
-LL | type NoReveal = impl std::fmt::Debug;
-   |                 -------------------- the found opaque type
-...
-LL |     let _: &'static str = x;
-   |            ------------   ^ expected `&str`, found opaque type
-   |            |
-   |            expected due to this
-   |
-   = note: expected reference `&'static str`
-            found opaque type `impl Debug`
-
-error[E0605]: non-primitive cast: `impl Debug` as `&'static str`
-  --> $DIR/never_reveal_concrete_type.rs:17:13
-   |
-LL |     let _ = x as &'static str;
-   |             ^^^^^^^^^^^^^^^^^ an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-Some errors have detailed explanations: E0308, E0605.
-For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.rs b/src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.rs
index c555b9cdded..8787c023eb0 100644
--- a/src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.rs
+++ b/src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
diff --git a/src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.min_tait.stderr b/src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.stderr
index 530f8876cf2..b438f844516 100644
--- a/src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/never_reveal_concrete_type.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/never_reveal_concrete_type.rs:16:27
+  --> $DIR/never_reveal_concrete_type.rs:13:27
    |
 LL | type NoReveal = impl std::fmt::Debug;
    |                 -------------------- the found opaque type
@@ -13,7 +13,7 @@ LL |     let _: &'static str = x;
             found opaque type `impl Debug`
 
 error[E0605]: non-primitive cast: `impl Debug` as `&'static str`
-  --> $DIR/never_reveal_concrete_type.rs:17:13
+  --> $DIR/never_reveal_concrete_type.rs:14:13
    |
 LL |     let _ = x as &'static str;
    |             ^^^^^^^^^^^^^^^^^ an `as` expression can only be used to convert between primitive types or to coerce to a specific trait object
diff --git a/src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.full_tait.stderr b/src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.full_tait.stderr
deleted file mode 100644
index faddecb2176..00000000000
--- a/src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/no_inferrable_concrete_type.rs:6:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: could not find defining uses
-  --> $DIR/no_inferrable_concrete_type.rs:9:12
-   |
-LL | type Foo = impl Copy;
-   |            ^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.rs b/src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.rs
index 409eec7250f..1197c7bc58e 100644
--- a/src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.rs
+++ b/src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.rs
@@ -1,10 +1,7 @@
 // Issue 52985: user code provides no use case that allows a type alias `impl Trait`
 // We now emit a 'could not find defining uses' error
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type Foo = impl Copy; //~ could not find defining uses
 
diff --git a/src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.min_tait.stderr b/src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.stderr
index 3194bd76107..61025e84692 100644
--- a/src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/no_inferrable_concrete_type.stderr
@@ -1,5 +1,5 @@
 error: could not find defining uses
-  --> $DIR/no_inferrable_concrete_type.rs:9:12
+  --> $DIR/no_inferrable_concrete_type.rs:6:12
    |
 LL | type Foo = impl Copy;
    |            ^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.full_tait.stderr b/src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.full_tait.stderr
deleted file mode 100644
index 8699b21929f..00000000000
--- a/src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.full_tait.stderr
+++ /dev/null
@@ -1,40 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/no_revealing_outside_defining_module.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0308]: mismatched types
-  --> $DIR/no_revealing_outside_defining_module.rs:18:19
-   |
-LL |     pub type Boo = impl ::std::fmt::Debug;
-   |                    ---------------------- the found opaque type
-...
-LL |     let _: &str = bomp();
-   |            ----   ^^^^^^ expected `&str`, found opaque type
-   |            |
-   |            expected due to this
-   |
-   = note: expected reference `&str`
-            found opaque type `impl Debug`
-
-error[E0308]: mismatched types
-  --> $DIR/no_revealing_outside_defining_module.rs:22:5
-   |
-LL |     pub type Boo = impl ::std::fmt::Debug;
-   |                    ---------------------- the expected opaque type
-...
-LL | fn bomp() -> boo::Boo {
-   |              -------- expected `impl Debug` because of return type
-LL |     ""
-   |     ^^ expected opaque type, found `&str`
-   |
-   = note: expected opaque type `impl Debug`
-                found reference `&'static str`
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.rs b/src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.rs
index 566c311b9bd..61153b1e171 100644
--- a/src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.rs
+++ b/src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {}
 
diff --git a/src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.min_tait.stderr b/src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.stderr
index faaab439352..67752acb8c9 100644
--- a/src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/no_revealing_outside_defining_module.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/no_revealing_outside_defining_module.rs:18:19
+  --> $DIR/no_revealing_outside_defining_module.rs:15:19
    |
 LL |     pub type Boo = impl ::std::fmt::Debug;
    |                    ---------------------- the found opaque type
@@ -13,7 +13,7 @@ LL |     let _: &str = bomp();
             found opaque type `impl Debug`
 
 error[E0308]: mismatched types
-  --> $DIR/no_revealing_outside_defining_module.rs:22:5
+  --> $DIR/no_revealing_outside_defining_module.rs:19:5
    |
 LL |     pub type Boo = impl ::std::fmt::Debug;
    |                    ---------------------- the expected opaque type
diff --git a/src/test/ui/type-alias-impl-trait/not_a_defining_use.full_tait.stderr b/src/test/ui/type-alias-impl-trait/not_a_defining_use.full_tait.stderr
deleted file mode 100644
index 76e3500e8a9..00000000000
--- a/src/test/ui/type-alias-impl-trait/not_a_defining_use.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/not_a_defining_use.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: non-defining opaque type use in defining scope
-  --> $DIR/not_a_defining_use.rs:12:27
-   |
-LL | fn two<T: Debug>(t: T) -> Two<T, u32> {
-   |                           ^^^^^^^^^^^
-   |
-note: used non-generic type `u32` for generic parameter
-  --> $DIR/not_a_defining_use.rs:10:13
-   |
-LL | type Two<T, U> = impl Debug;
-   |             ^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/not_a_defining_use.rs b/src/test/ui/type-alias-impl-trait/not_a_defining_use.rs
index e58f33fcff4..f29b980dfd0 100644
--- a/src/test/ui/type-alias-impl-trait/not_a_defining_use.rs
+++ b/src/test/ui/type-alias-impl-trait/not_a_defining_use.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::fmt::Debug;
 
diff --git a/src/test/ui/type-alias-impl-trait/not_a_defining_use.min_tait.stderr b/src/test/ui/type-alias-impl-trait/not_a_defining_use.stderr
index f5dbfecc742..2fa236b373a 100644
--- a/src/test/ui/type-alias-impl-trait/not_a_defining_use.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/not_a_defining_use.stderr
@@ -1,11 +1,11 @@
 error: non-defining opaque type use in defining scope
-  --> $DIR/not_a_defining_use.rs:12:27
+  --> $DIR/not_a_defining_use.rs:9:27
    |
 LL | fn two<T: Debug>(t: T) -> Two<T, u32> {
    |                           ^^^^^^^^^^^
    |
 note: used non-generic type `u32` for generic parameter
-  --> $DIR/not_a_defining_use.rs:10:13
+  --> $DIR/not_a_defining_use.rs:7:13
    |
 LL | type Two<T, U> = impl Debug;
    |             ^
diff --git a/src/test/ui/type-alias-impl-trait/not_well_formed.full_tait.stderr b/src/test/ui/type-alias-impl-trait/not_well_formed.full_tait.stderr
deleted file mode 100644
index 38f086ec45d..00000000000
--- a/src/test/ui/type-alias-impl-trait/not_well_formed.full_tait.stderr
+++ /dev/null
@@ -1,18 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/not_well_formed.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0220]: associated type `Assoc` not found for `V`
-  --> $DIR/not_well_formed.rs:13:29
-   |
-LL | type Foo<V> = impl Trait<V::Assoc>;
-   |                             ^^^^^ associated type `Assoc` not found
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0220`.
diff --git a/src/test/ui/type-alias-impl-trait/not_well_formed.rs b/src/test/ui/type-alias-impl-trait/not_well_formed.rs
index 6d511c58188..fbb7a4d58e4 100644
--- a/src/test/ui/type-alias-impl-trait/not_well_formed.rs
+++ b/src/test/ui/type-alias-impl-trait/not_well_formed.rs
@@ -1,10 +1,6 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
-fn main() {
-}
+fn main() {}
 
 trait TraitWithAssoc {
     type Assoc;
diff --git a/src/test/ui/type-alias-impl-trait/not_well_formed.min_tait.stderr b/src/test/ui/type-alias-impl-trait/not_well_formed.stderr
index 3bac38cef7d..91c1d031e4e 100644
--- a/src/test/ui/type-alias-impl-trait/not_well_formed.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/not_well_formed.stderr
@@ -1,5 +1,5 @@
 error[E0220]: associated type `Assoc` not found for `V`
-  --> $DIR/not_well_formed.rs:13:29
+  --> $DIR/not_well_formed.rs:9:29
    |
 LL | type Foo<V> = impl Trait<V::Assoc>;
    |                             ^^^^^ associated type `Assoc` not found
diff --git a/src/test/ui/type-alias-impl-trait/structural-match-no-leak.full_tait.stderr b/src/test/ui/type-alias-impl-trait/structural-match-no-leak.full_tait.stderr
deleted file mode 100644
index d5a4fa52dfb..00000000000
--- a/src/test/ui/type-alias-impl-trait/structural-match-no-leak.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/structural-match-no-leak.rs:4:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: `impl Send` cannot be used in patterns
-  --> $DIR/structural-match-no-leak.rs:18:9
-   |
-LL |         LEAK_FREE => (),
-   |         ^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/structural-match-no-leak.rs b/src/test/ui/type-alias-impl-trait/structural-match-no-leak.rs
index e2b10e7355f..51a7b6454c3 100644
--- a/src/test/ui/type-alias-impl-trait/structural-match-no-leak.rs
+++ b/src/test/ui/type-alias-impl-trait/structural-match-no-leak.rs
@@ -1,8 +1,5 @@
 #![feature(const_impl_trait)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type Bar = impl Send;
 
diff --git a/src/test/ui/type-alias-impl-trait/structural-match-no-leak.min_tait.stderr b/src/test/ui/type-alias-impl-trait/structural-match-no-leak.stderr
index b7caf8ed298..7e41b374452 100644
--- a/src/test/ui/type-alias-impl-trait/structural-match-no-leak.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/structural-match-no-leak.stderr
@@ -1,5 +1,5 @@
 error: `impl Send` cannot be used in patterns
-  --> $DIR/structural-match-no-leak.rs:18:9
+  --> $DIR/structural-match-no-leak.rs:15:9
    |
 LL |         LEAK_FREE => (),
    |         ^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/structural-match.full_tait.stderr b/src/test/ui/type-alias-impl-trait/structural-match.full_tait.stderr
deleted file mode 100644
index d394c99df80..00000000000
--- a/src/test/ui/type-alias-impl-trait/structural-match.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/structural-match.rs:4:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: `impl Send` cannot be used in patterns
-  --> $DIR/structural-match.rs:19:9
-   |
-LL |         VALUE => (),
-   |         ^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/structural-match.rs b/src/test/ui/type-alias-impl-trait/structural-match.rs
index aed9334b3cc..73558d39ad5 100644
--- a/src/test/ui/type-alias-impl-trait/structural-match.rs
+++ b/src/test/ui/type-alias-impl-trait/structural-match.rs
@@ -1,8 +1,5 @@
 #![feature(const_impl_trait)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type Foo = impl Send;
 
diff --git a/src/test/ui/type-alias-impl-trait/structural-match.min_tait.stderr b/src/test/ui/type-alias-impl-trait/structural-match.stderr
index f63b1fb23df..b43f2148dea 100644
--- a/src/test/ui/type-alias-impl-trait/structural-match.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/structural-match.stderr
@@ -1,5 +1,5 @@
 error: `impl Send` cannot be used in patterns
-  --> $DIR/structural-match.rs:19:9
+  --> $DIR/structural-match.rs:16:9
    |
 LL |         VALUE => (),
    |         ^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.full_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.full_tait.stderr
deleted file mode 100644
index 6f817757cc4..00000000000
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.full_tait.stderr
+++ /dev/null
@@ -1,30 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/type-alias-impl-trait-const.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0308]: mismatched types
-  --> $DIR/type-alias-impl-trait-const.rs:13:19
-   |
-LL | pub type Foo = impl Debug;
-   |                ---------- the expected opaque type
-...
-LL | const _FOO: Foo = 5;
-   |                   ^ expected opaque type, found integer
-   |
-   = note: expected opaque type `impl Debug`
-                     found type `{integer}`
-
-error: could not find defining uses
-  --> $DIR/type-alias-impl-trait-const.rs:10:16
-   |
-LL | pub type Foo = impl Debug;
-   |                ^^^^^^^^^^
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0308`.
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.rs
index 751512c5dfc..1a8113848f9 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.rs
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 // Ensures that `const` items can constrain an opaque `impl Trait`.
 
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.min_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.stderr
index ce98318333b..e2567e87ac6 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-const.stderr
@@ -1,5 +1,5 @@
 error[E0308]: mismatched types
-  --> $DIR/type-alias-impl-trait-const.rs:13:19
+  --> $DIR/type-alias-impl-trait-const.rs:10:19
    |
 LL | pub type Foo = impl Debug;
    |                ---------- the expected opaque type
@@ -11,7 +11,7 @@ LL | const _FOO: Foo = 5;
                      found type `{integer}`
 
 error: could not find defining uses
-  --> $DIR/type-alias-impl-trait-const.rs:10:16
+  --> $DIR/type-alias-impl-trait-const.rs:7:16
    |
 LL | pub type Foo = impl Debug;
    |                ^^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fns.full_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fns.full_tait.stderr
deleted file mode 100644
index fb88c2043bd..00000000000
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fns.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/type-alias-impl-trait-fns.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fns.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fns.rs
index a6b00220084..07c891f0638 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fns.rs
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-fns.rs
@@ -1,9 +1,6 @@
 // check-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 // Regression test for issue #61863
 
@@ -11,20 +8,19 @@ pub trait MyTrait {}
 
 #[derive(Debug)]
 pub struct MyStruct {
-  v: u64
+    v: u64,
 }
 
 impl MyTrait for MyStruct {}
 
 pub fn bla() -> TE {
-    return MyStruct {v:1}
+    return MyStruct { v: 1 };
 }
 
 pub fn bla2() -> TE {
     bla()
 }
 
-
 type TE = impl MyTrait;
 
 fn main() {}
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-sized.full_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-sized.full_tait.stderr
deleted file mode 100644
index cbecd0bb3d4..00000000000
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-sized.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/type-alias-impl-trait-sized.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-sized.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-sized.rs
index b062739921f..c5e8068e5c8 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-sized.rs
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-sized.rs
@@ -1,20 +1,25 @@
 // check-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type A = impl Sized;
-fn f1() -> A { 0 }
+fn f1() -> A {
+    0
+}
 
 type B = impl ?Sized;
-fn f2() -> &'static B { &[0] }
+fn f2() -> &'static B {
+    &[0]
+}
 
 type C = impl ?Sized + 'static;
-fn f3() -> &'static C { &[0] }
+fn f3() -> &'static C {
+    &[0]
+}
 
 type D = impl ?Sized;
-fn f4() -> &'static D { &1 }
+fn f4() -> &'static D {
+    &1
+}
 
 fn main() {}
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-tuple.full_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-tuple.full_tait.stderr
deleted file mode 100644
index 1a351867bff..00000000000
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-tuple.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/type-alias-impl-trait-tuple.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-tuple.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-tuple.rs
index ad2c11d4f99..86c9d482143 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-tuple.rs
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-tuple.rs
@@ -1,9 +1,6 @@
 // check-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 #![allow(dead_code)]
 
 pub trait MyTrait {}
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.full_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.full_tait.stderr
deleted file mode 100644
index b16d9c2c143..00000000000
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.full_tait.stderr
+++ /dev/null
@@ -1,18 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/type-alias-impl-trait-unconstrained-lifetime.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/type-alias-impl-trait-unconstrained-lifetime.rs:13:6
-   |
-LL | impl<'a, I: Iterator<Item = i32>> Trait for (i32, I) {
-   |      ^^ unconstrained lifetime parameter
-
-error: aborting due to previous error; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0207`.
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.rs
index 97294e81dca..efbf4f1e351 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.rs
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.rs
@@ -1,9 +1,6 @@
 // regression test for #74018
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 trait Trait {
     type Associated;
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.min_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.stderr
index 7d4abb0fafb..8cdce2f8e81 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-unconstrained-lifetime.stderr
@@ -1,5 +1,5 @@
 error[E0207]: the lifetime parameter `'a` is not constrained by the impl trait, self type, or predicates
-  --> $DIR/type-alias-impl-trait-unconstrained-lifetime.rs:13:6
+  --> $DIR/type-alias-impl-trait-unconstrained-lifetime.rs:10:6
    |
 LL | impl<'a, I: Iterator<Item = i32>> Trait for (i32, I) {
    |      ^^ unconstrained lifetime parameter
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.full_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.full_tait.stderr
deleted file mode 100644
index e3fd076fc49..00000000000
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/type-alias-impl-trait-with-cycle-error.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: could not find defining uses
-  --> $DIR/type-alias-impl-trait-with-cycle-error.rs:6:12
-   |
-LL | type Foo = impl Fn() -> Foo;
-   |            ^^^^^^^^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.rs
index dba0d2c2cdf..c009952eab7 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.rs
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type Foo = impl Fn() -> Foo;
 //~^ ERROR: could not find defining uses
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.min_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.stderr
index 556779574e4..726f4ea6e00 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error.stderr
@@ -1,5 +1,5 @@
 error: could not find defining uses
-  --> $DIR/type-alias-impl-trait-with-cycle-error.rs:6:12
+  --> $DIR/type-alias-impl-trait-with-cycle-error.rs:3:12
    |
 LL | type Foo = impl Fn() -> Foo;
    |            ^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.full_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.full_tait.stderr
deleted file mode 100644
index eccf08b4a12..00000000000
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.full_tait.stderr
+++ /dev/null
@@ -1,17 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/type-alias-impl-trait-with-cycle-error2.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: could not find defining uses
-  --> $DIR/type-alias-impl-trait-with-cycle-error2.rs:10:12
-   |
-LL | type Foo = impl Bar<Foo, Item = Foo>;
-   |            ^^^^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to previous error; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.rs
index f2044037125..f3898bca64b 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.rs
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 pub trait Bar<T> {
     type Item;
@@ -14,6 +11,4 @@ fn crash(x: Foo) -> Foo {
     x
 }
 
-fn main() {
-
-}
+fn main() {}
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.min_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.stderr
index 44d279cad17..3947cc4d270 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-cycle-error2.stderr
@@ -1,5 +1,5 @@
 error: could not find defining uses
-  --> $DIR/type-alias-impl-trait-with-cycle-error2.rs:10:12
+  --> $DIR/type-alias-impl-trait-with-cycle-error2.rs:7:12
    |
 LL | type Foo = impl Bar<Foo, Item = Foo>;
    |            ^^^^^^^^^^^^^^^^^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.full_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.full_tait.stderr
deleted file mode 100644
index 6ada4b2fdff..00000000000
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-error: at least one trait must be specified
-  --> $DIR/type-alias-impl-trait-with-no-traits.rs:6:12
-   |
-LL | type Foo = impl 'static;
-   |            ^^^^^^^^^^^^
-
-error: at least one trait must be specified
-  --> $DIR/type-alias-impl-trait-with-no-traits.rs:13:13
-   |
-LL | fn bar() -> impl 'static {
-   |             ^^^^^^^^^^^^
-
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/type-alias-impl-trait-with-no-traits.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.rs
index 7efc7900588..8ca279eec92 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.rs
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.rs
@@ -1,7 +1,4 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 type Foo = impl 'static;
 //~^ ERROR: at least one trait must be specified
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.min_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.stderr
index 5fd8aac5507..3f7acd33830 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait-with-no-traits.stderr
@@ -1,11 +1,11 @@
 error: at least one trait must be specified
-  --> $DIR/type-alias-impl-trait-with-no-traits.rs:6:12
+  --> $DIR/type-alias-impl-trait-with-no-traits.rs:3:12
    |
 LL | type Foo = impl 'static;
    |            ^^^^^^^^^^^^
 
 error: at least one trait must be specified
-  --> $DIR/type-alias-impl-trait-with-no-traits.rs:13:13
+  --> $DIR/type-alias-impl-trait-with-no-traits.rs:10:13
    |
 LL | fn bar() -> impl 'static {
    |             ^^^^^^^^^^^^
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait.full_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait.full_tait.stderr
deleted file mode 100644
index 8c0f7758dae..00000000000
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/type-alias-impl-trait.rs:8:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait.rs b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait.rs
index 6176595534a..80192d19af9 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-impl-trait.rs
+++ b/src/test/ui/type-alias-impl-trait/type-alias-impl-trait.rs
@@ -3,10 +3,7 @@
 #![allow(dead_code)]
 #![allow(unused_assignments)]
 #![allow(unused_variables)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 fn main() {
     assert_eq!(foo().to_string(), "foo");
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-nested-impl-trait.full_tait.stderr b/src/test/ui/type-alias-impl-trait/type-alias-nested-impl-trait.full_tait.stderr
deleted file mode 100644
index ed4fe41da3e..00000000000
--- a/src/test/ui/type-alias-impl-trait/type-alias-nested-impl-trait.full_tait.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/type-alias-nested-impl-trait.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/type-alias-nested-impl-trait.rs b/src/test/ui/type-alias-impl-trait/type-alias-nested-impl-trait.rs
index 3023bf06562..fd954801dc0 100644
--- a/src/test/ui/type-alias-impl-trait/type-alias-nested-impl-trait.rs
+++ b/src/test/ui/type-alias-impl-trait/type-alias-nested-impl-trait.rs
@@ -1,9 +1,6 @@
 // run-pass
 
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
 use std::iter::{once, Chain};
 
diff --git a/src/test/ui/type-alias-impl-trait/unused_generic_param.full_tait.stderr b/src/test/ui/type-alias-impl-trait/unused_generic_param.full_tait.stderr
deleted file mode 100644
index b70f36b67ab..00000000000
--- a/src/test/ui/type-alias-impl-trait/unused_generic_param.full_tait.stderr
+++ /dev/null
@@ -1,23 +0,0 @@
-error: at least one trait must be specified
-  --> $DIR/unused_generic_param.rs:9:28
-   |
-LL | type PartiallyDefined<T> = impl 'static;
-   |                            ^^^^^^^^^^^^
-
-error: at least one trait must be specified
-  --> $DIR/unused_generic_param.rs:16:29
-   |
-LL | type PartiallyDefined2<T> = impl 'static;
-   |                             ^^^^^^^^^^^^
-
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/unused_generic_param.rs:3:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
diff --git a/src/test/ui/type-alias-impl-trait/unused_generic_param.rs b/src/test/ui/type-alias-impl-trait/unused_generic_param.rs
index 59c7646ade2..04a5c58cd36 100644
--- a/src/test/ui/type-alias-impl-trait/unused_generic_param.rs
+++ b/src/test/ui/type-alias-impl-trait/unused_generic_param.rs
@@ -1,10 +1,6 @@
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 
-fn main() {
-}
+fn main() {}
 
 type PartiallyDefined<T> = impl 'static;
 //~^ ERROR: at least one trait must be specified
diff --git a/src/test/ui/type-alias-impl-trait/unused_generic_param.min_tait.stderr b/src/test/ui/type-alias-impl-trait/unused_generic_param.stderr
index 561025c88f8..4e11854b071 100644
--- a/src/test/ui/type-alias-impl-trait/unused_generic_param.min_tait.stderr
+++ b/src/test/ui/type-alias-impl-trait/unused_generic_param.stderr
@@ -1,11 +1,11 @@
 error: at least one trait must be specified
-  --> $DIR/unused_generic_param.rs:9:28
+  --> $DIR/unused_generic_param.rs:5:28
    |
 LL | type PartiallyDefined<T> = impl 'static;
    |                            ^^^^^^^^^^^^
 
 error: at least one trait must be specified
-  --> $DIR/unused_generic_param.rs:16:29
+  --> $DIR/unused_generic_param.rs:12:29
    |
 LL | type PartiallyDefined2<T> = impl 'static;
    |                             ^^^^^^^^^^^^
diff --git a/src/test/ui/typeck/typeck_type_placeholder_item.full_tait.stderr b/src/test/ui/typeck/typeck_type_placeholder_item.full_tait.stderr
deleted file mode 100644
index b6aea9586b8..00000000000
--- a/src/test/ui/typeck/typeck_type_placeholder_item.full_tait.stderr
+++ /dev/null
@@ -1,647 +0,0 @@
-error: expected identifier, found reserved identifier `_`
-  --> $DIR/typeck_type_placeholder_item.rs:157:18
-   |
-LL | struct BadStruct<_>(_);
-   |                  ^ expected identifier, found reserved identifier
-
-error: expected identifier, found reserved identifier `_`
-  --> $DIR/typeck_type_placeholder_item.rs:160:16
-   |
-LL | trait BadTrait<_> {}
-   |                ^ expected identifier, found reserved identifier
-
-error: expected identifier, found reserved identifier `_`
-  --> $DIR/typeck_type_placeholder_item.rs:170:19
-   |
-LL | struct BadStruct1<_, _>(_);
-   |                   ^ expected identifier, found reserved identifier
-
-error: expected identifier, found reserved identifier `_`
-  --> $DIR/typeck_type_placeholder_item.rs:170:22
-   |
-LL | struct BadStruct1<_, _>(_);
-   |                      ^ expected identifier, found reserved identifier
-
-error: expected identifier, found reserved identifier `_`
-  --> $DIR/typeck_type_placeholder_item.rs:175:19
-   |
-LL | struct BadStruct2<_, T>(_, T);
-   |                   ^ expected identifier, found reserved identifier
-
-error: associated constant in `impl` without body
-  --> $DIR/typeck_type_placeholder_item.rs:208:5
-   |
-LL |     const C: _;
-   |     ^^^^^^^^^^-
-   |               |
-   |               help: provide a definition for the constant: `= <expr>;`
-
-error[E0403]: the name `_` is already used for a generic parameter in this item's generic parameters
-  --> $DIR/typeck_type_placeholder_item.rs:170:22
-   |
-LL | struct BadStruct1<_, _>(_);
-   |                   -  ^ already used
-   |                   |
-   |                   first use of `_`
-
-warning: the feature `type_alias_impl_trait` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/typeck_type_placeholder_item.rs:5:32
-   |
-LL | #![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-   |                                ^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63063 <https://github.com/rust-lang/rust/issues/63063> for more information
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:10:14
-   |
-LL | fn test() -> _ { 5 }
-   |              ^
-   |              |
-   |              not allowed in type signatures
-   |              help: replace with the correct return type: `i32`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:13:16
-   |
-LL | fn test2() -> (_, _) { (5, 5) }
-   |               -^--^-
-   |               ||  |
-   |               ||  not allowed in type signatures
-   |               |not allowed in type signatures
-   |               help: replace with the correct return type: `(i32, i32)`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:16:15
-   |
-LL | static TEST3: _ = "test";
-   |               ^
-   |               |
-   |               not allowed in type signatures
-   |               help: replace with the correct type: `&str`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:19:15
-   |
-LL | static TEST4: _ = 145;
-   |               ^
-   |               |
-   |               not allowed in type signatures
-   |               help: replace with the correct type: `i32`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:22:15
-   |
-LL | static TEST5: (_, _) = (1, 2);
-   |               ^^^^^^ not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:25:13
-   |
-LL | fn test6(_: _) { }
-   |             ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL | fn test6<T>(_: T) { }
-   |         ^^^    ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:28:18
-   |
-LL | fn test6_b<T>(_: _, _: T) { }
-   |                  ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL | fn test6_b<T, U>(_: U, _: T) { }
-   |             ^^^     ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:31:30
-   |
-LL | fn test6_c<T, K, L, A, B>(_: _, _: (T, K, L, A, B)) { }
-   |                              ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL | fn test6_c<T, K, L, A, B, U>(_: U, _: (T, K, L, A, B)) { }
-   |                         ^^^     ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:34:13
-   |
-LL | fn test7(x: _) { let _x: usize = x; }
-   |             ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL | fn test7<T>(x: T) { let _x: usize = x; }
-   |         ^^^    ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:37:22
-   |
-LL | fn test8(_f: fn() -> _) { }
-   |                      ^
-   |                      |
-   |                      not allowed in type signatures
-   |                      help: use type parameters instead: `T`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:37:22
-   |
-LL | fn test8(_f: fn() -> _) { }
-   |                      ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL | fn test8<T>(_f: fn() -> T) { }
-   |         ^^^             ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:51:26
-   |
-LL | fn test11(x: &usize) -> &_ {
-   |                         -^
-   |                         ||
-   |                         |not allowed in type signatures
-   |                         help: replace with the correct return type: `&'static &'static usize`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:56:52
-   |
-LL | unsafe fn test12(x: *const usize) -> *const *const _ {
-   |                                      --------------^
-   |                                      |             |
-   |                                      |             not allowed in type signatures
-   |                                      help: replace with the correct return type: `*const *const usize`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for structs
-  --> $DIR/typeck_type_placeholder_item.rs:70:8
-   |
-LL |     a: _,
-   |        ^ not allowed in type signatures
-LL |
-LL |     b: (_, _),
-   |         ^  ^ not allowed in type signatures
-   |         |
-   |         not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL | struct Test10<T> {
-LL |     a: T,
-LL |
-LL |     b: (T, T),
-   |
-
-error: missing type for `static` item
-  --> $DIR/typeck_type_placeholder_item.rs:76:12
-   |
-LL |     static A = 42;
-   |            ^ help: provide a type for the static variable: `A: i32`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:78:15
-   |
-LL |     static B: _ = 42;
-   |               ^
-   |               |
-   |               not allowed in type signatures
-   |               help: replace with the correct type: `i32`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:80:15
-   |
-LL |     static C: Option<_> = Some(42);
-   |               ^^^^^^^^^ not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:82:21
-   |
-LL |     fn fn_test() -> _ { 5 }
-   |                     ^
-   |                     |
-   |                     not allowed in type signatures
-   |                     help: replace with the correct return type: `i32`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:85:23
-   |
-LL |     fn fn_test2() -> (_, _) { (5, 5) }
-   |                      -^--^-
-   |                      ||  |
-   |                      ||  not allowed in type signatures
-   |                      |not allowed in type signatures
-   |                      help: replace with the correct return type: `(i32, i32)`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:88:22
-   |
-LL |     static FN_TEST3: _ = "test";
-   |                      ^
-   |                      |
-   |                      not allowed in type signatures
-   |                      help: replace with the correct type: `&str`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:91:22
-   |
-LL |     static FN_TEST4: _ = 145;
-   |                      ^
-   |                      |
-   |                      not allowed in type signatures
-   |                      help: replace with the correct type: `i32`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:94:22
-   |
-LL |     static FN_TEST5: (_, _) = (1, 2);
-   |                      ^^^^^^ not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:97:20
-   |
-LL |     fn fn_test6(_: _) { }
-   |                    ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |     fn fn_test6<T>(_: T) { }
-   |                ^^^    ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:100:20
-   |
-LL |     fn fn_test7(x: _) { let _x: usize = x; }
-   |                    ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |     fn fn_test7<T>(x: T) { let _x: usize = x; }
-   |                ^^^    ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:103:29
-   |
-LL |     fn fn_test8(_f: fn() -> _) { }
-   |                             ^
-   |                             |
-   |                             not allowed in type signatures
-   |                             help: use type parameters instead: `T`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:103:29
-   |
-LL |     fn fn_test8(_f: fn() -> _) { }
-   |                             ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |     fn fn_test8<T>(_f: fn() -> T) { }
-   |                ^^^             ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for structs
-  --> $DIR/typeck_type_placeholder_item.rs:126:12
-   |
-LL |         a: _,
-   |            ^ not allowed in type signatures
-LL |
-LL |         b: (_, _),
-   |             ^  ^ not allowed in type signatures
-   |             |
-   |             not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |     struct FnTest10<T> {
-LL |         a: T,
-LL |
-LL |         b: (T, T),
-   |
-
-error[E0282]: type annotations needed
-  --> $DIR/typeck_type_placeholder_item.rs:131:18
-   |
-LL |     fn fn_test11(_: _) -> (_, _) { panic!() }
-   |                  ^ cannot infer type
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:131:28
-   |
-LL |     fn fn_test11(_: _) -> (_, _) { panic!() }
-   |                            ^  ^ not allowed in type signatures
-   |                            |
-   |                            not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:135:30
-   |
-LL |     fn fn_test12(x: i32) -> (_, _) { (x, x) }
-   |                             -^--^-
-   |                             ||  |
-   |                             ||  not allowed in type signatures
-   |                             |not allowed in type signatures
-   |                             help: replace with the correct return type: `(i32, i32)`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:138:33
-   |
-LL |     fn fn_test13(x: _) -> (i32, _) { (x, x) }
-   |                           ------^-
-   |                           |     |
-   |                           |     not allowed in type signatures
-   |                           help: replace with the correct return type: `(i32, i32)`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for structs
-  --> $DIR/typeck_type_placeholder_item.rs:157:21
-   |
-LL | struct BadStruct<_>(_);
-   |                     ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL | struct BadStruct<T>(T);
-   |                  ^  ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for implementations
-  --> $DIR/typeck_type_placeholder_item.rs:162:15
-   |
-LL | impl BadTrait<_> for BadStruct<_> {}
-   |               ^                ^ not allowed in type signatures
-   |               |
-   |               not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL | impl<T> BadTrait<T> for BadStruct<T> {}
-   |     ^^^          ^                ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for opaque types
-  --> $DIR/typeck_type_placeholder_item.rs:165:34
-   |
-LL | fn impl_trait() -> impl BadTrait<_> {
-   |                                  ^ not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for structs
-  --> $DIR/typeck_type_placeholder_item.rs:170:25
-   |
-LL | struct BadStruct1<_, _>(_);
-   |                         ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL | struct BadStruct1<T, _>(T);
-   |                   ^     ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for structs
-  --> $DIR/typeck_type_placeholder_item.rs:175:25
-   |
-LL | struct BadStruct2<_, T>(_, T);
-   |                         ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL | struct BadStruct2<U, T>(U, T);
-   |                   ^     ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for type aliases
-  --> $DIR/typeck_type_placeholder_item.rs:179:14
-   |
-LL | type X = Box<_>;
-   |              ^ not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for opaque types
-  --> $DIR/typeck_type_placeholder_item.rs:185:21
-   |
-LL | type Y = impl Trait<_>;
-   |                     ^ not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:219:31
-   |
-LL | fn value() -> Option<&'static _> {
-   |               ----------------^-
-   |               |               |
-   |               |               not allowed in type signatures
-   |               help: replace with the correct return type: `Option<&'static u8>`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for constants
-  --> $DIR/typeck_type_placeholder_item.rs:224:10
-   |
-LL | const _: Option<_> = map(value);
-   |          ^^^^^^^^^
-   |          |
-   |          not allowed in type signatures
-   |          help: replace with the correct type: `Option<u8>`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:143:31
-   |
-LL |     fn method_test1(&self, x: _);
-   |                               ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |     fn method_test1<T>(&self, x: T);
-   |                    ^^^           ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:145:31
-   |
-LL |     fn method_test2(&self, x: _) -> _;
-   |                               ^     ^ not allowed in type signatures
-   |                               |
-   |                               not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |     fn method_test2<T>(&self, x: T) -> T;
-   |                    ^^^           ^     ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:147:31
-   |
-LL |     fn method_test3(&self) -> _;
-   |                               ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |     fn method_test3<T>(&self) -> T;
-   |                    ^^^           ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:149:26
-   |
-LL |     fn assoc_fn_test1(x: _);
-   |                          ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |     fn assoc_fn_test1<T>(x: T);
-   |                      ^^^    ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:151:26
-   |
-LL |     fn assoc_fn_test2(x: _) -> _;
-   |                          ^     ^ not allowed in type signatures
-   |                          |
-   |                          not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |     fn assoc_fn_test2<T>(x: T) -> T;
-   |                      ^^^    ^     ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:153:28
-   |
-LL |     fn assoc_fn_test3() -> _;
-   |                            ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |     fn assoc_fn_test3<T>() -> T;
-   |                      ^^^      ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for associated types
-  --> $DIR/typeck_type_placeholder_item.rs:193:14
-   |
-LL |     type B = _;
-   |              ^ not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for constants
-  --> $DIR/typeck_type_placeholder_item.rs:195:14
-   |
-LL |     const C: _;
-   |              ^ not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for constants
-  --> $DIR/typeck_type_placeholder_item.rs:197:14
-   |
-LL |     const D: _ = 42;
-   |              ^
-   |              |
-   |              not allowed in type signatures
-   |              help: replace with the correct type: `i32`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for associated types
-  --> $DIR/typeck_type_placeholder_item.rs:200:26
-   |
-LL |     type F: std::ops::Fn(_);
-   |                          ^ not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:44:24
-   |
-LL |     fn test9(&self) -> _ { () }
-   |                        ^
-   |                        |
-   |                        not allowed in type signatures
-   |                        help: replace with the correct return type: `()`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:47:27
-   |
-LL |     fn test10(&self, _x : _) { }
-   |                           ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |     fn test10<T>(&self, _x : T) { }
-   |              ^^^             ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:62:24
-   |
-LL |     fn clone(&self) -> _ { Test9 }
-   |                        ^
-   |                        |
-   |                        not allowed in type signatures
-   |                        help: replace with the correct return type: `Test9`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:65:37
-   |
-LL |     fn clone_from(&mut self, other: _) { *self = Test9; }
-   |                                     ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |     fn clone_from<T>(&mut self, other: T) { *self = Test9; }
-   |                  ^^^                   ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:110:31
-   |
-LL |         fn fn_test9(&self) -> _ { () }
-   |                               ^
-   |                               |
-   |                               not allowed in type signatures
-   |                               help: replace with the correct return type: `()`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:113:34
-   |
-LL |         fn fn_test10(&self, _x : _) { }
-   |                                  ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |         fn fn_test10<T>(&self, _x : T) { }
-   |                     ^^^             ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:118:28
-   |
-LL |         fn clone(&self) -> _ { FnTest9 }
-   |                            ^
-   |                            |
-   |                            not allowed in type signatures
-   |                            help: replace with the correct return type: `FnTest9`
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:121:41
-   |
-LL |         fn clone_from(&mut self, other: _) { *self = FnTest9; }
-   |                                         ^ not allowed in type signatures
-   |
-help: use type parameters instead
-   |
-LL |         fn clone_from<T>(&mut self, other: T) { *self = FnTest9; }
-   |                      ^^^                   ^
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for associated types
-  --> $DIR/typeck_type_placeholder_item.rs:204:14
-   |
-LL |     type A = _;
-   |              ^ not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for associated types
-  --> $DIR/typeck_type_placeholder_item.rs:206:14
-   |
-LL |     type B = _;
-   |              ^ not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for constants
-  --> $DIR/typeck_type_placeholder_item.rs:208:14
-   |
-LL |     const C: _;
-   |              ^ not allowed in type signatures
-
-error[E0121]: the type placeholder `_` is not allowed within types on item signatures for constants
-  --> $DIR/typeck_type_placeholder_item.rs:211:14
-   |
-LL |     const D: _ = 42;
-   |              ^
-   |              |
-   |              not allowed in type signatures
-   |              help: replace with the correct type: `i32`
-
-error: aborting due to 69 previous errors; 1 warning emitted
-
-Some errors have detailed explanations: E0121, E0282, E0403.
-For more information about an error, try `rustc --explain E0121`.
diff --git a/src/test/ui/typeck/typeck_type_placeholder_item.rs b/src/test/ui/typeck/typeck_type_placeholder_item.rs
index 55f5d44d46b..a3b75543510 100644
--- a/src/test/ui/typeck/typeck_type_placeholder_item.rs
+++ b/src/test/ui/typeck/typeck_type_placeholder_item.rs
@@ -1,9 +1,6 @@
 // Needed for `type Y = impl Trait<_>` and `type B = _;`
 #![feature(associated_type_defaults)]
-// revisions: min_tait full_tait
-#![feature(min_type_alias_impl_trait)]
-#![cfg_attr(full_tait, feature(type_alias_impl_trait))]
-//[full_tait]~^ WARN incomplete
+#![feature(type_alias_impl_trait)]
 // This test checks that it is not possible to enable global type
 // inference by using the `_` type placeholder.
 
diff --git a/src/test/ui/typeck/typeck_type_placeholder_item.min_tait.stderr b/src/test/ui/typeck/typeck_type_placeholder_item.stderr
index 88cc3bfc7f8..4827439bfbf 100644
--- a/src/test/ui/typeck/typeck_type_placeholder_item.min_tait.stderr
+++ b/src/test/ui/typeck/typeck_type_placeholder_item.stderr
@@ -1,35 +1,35 @@
 error: expected identifier, found reserved identifier `_`
-  --> $DIR/typeck_type_placeholder_item.rs:157:18
+  --> $DIR/typeck_type_placeholder_item.rs:154:18
    |
 LL | struct BadStruct<_>(_);
    |                  ^ expected identifier, found reserved identifier
 
 error: expected identifier, found reserved identifier `_`
-  --> $DIR/typeck_type_placeholder_item.rs:160:16
+  --> $DIR/typeck_type_placeholder_item.rs:157:16
    |
 LL | trait BadTrait<_> {}
    |                ^ expected identifier, found reserved identifier
 
 error: expected identifier, found reserved identifier `_`
-  --> $DIR/typeck_type_placeholder_item.rs:170:19
+  --> $DIR/typeck_type_placeholder_item.rs:167:19
    |
 LL | struct BadStruct1<_, _>(_);
    |                   ^ expected identifier, found reserved identifier
 
 error: expected identifier, found reserved identifier `_`
-  --> $DIR/typeck_type_placeholder_item.rs:170:22
+  --> $DIR/typeck_type_placeholder_item.rs:167:22
    |
 LL | struct BadStruct1<_, _>(_);
    |                      ^ expected identifier, found reserved identifier
 
 error: expected identifier, found reserved identifier `_`
-  --> $DIR/typeck_type_placeholder_item.rs:175:19
+  --> $DIR/typeck_type_placeholder_item.rs:172:19
    |
 LL | struct BadStruct2<_, T>(_, T);
    |                   ^ expected identifier, found reserved identifier
 
 error: associated constant in `impl` without body
-  --> $DIR/typeck_type_placeholder_item.rs:208:5
+  --> $DIR/typeck_type_placeholder_item.rs:205:5
    |
 LL |     const C: _;
    |     ^^^^^^^^^^-
@@ -37,7 +37,7 @@ LL |     const C: _;
    |               help: provide a definition for the constant: `= <expr>;`
 
 error[E0403]: the name `_` is already used for a generic parameter in this item's generic parameters
-  --> $DIR/typeck_type_placeholder_item.rs:170:22
+  --> $DIR/typeck_type_placeholder_item.rs:167:22
    |
 LL | struct BadStruct1<_, _>(_);
    |                   -  ^ already used
@@ -45,7 +45,7 @@ LL | struct BadStruct1<_, _>(_);
    |                   first use of `_`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:10:14
+  --> $DIR/typeck_type_placeholder_item.rs:7:14
    |
 LL | fn test() -> _ { 5 }
    |              ^
@@ -54,7 +54,7 @@ LL | fn test() -> _ { 5 }
    |              help: replace with the correct return type: `i32`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:13:16
+  --> $DIR/typeck_type_placeholder_item.rs:10:16
    |
 LL | fn test2() -> (_, _) { (5, 5) }
    |               -^--^-
@@ -64,7 +64,7 @@ LL | fn test2() -> (_, _) { (5, 5) }
    |               help: replace with the correct return type: `(i32, i32)`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:16:15
+  --> $DIR/typeck_type_placeholder_item.rs:13:15
    |
 LL | static TEST3: _ = "test";
    |               ^
@@ -73,7 +73,7 @@ LL | static TEST3: _ = "test";
    |               help: replace with the correct type: `&str`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:19:15
+  --> $DIR/typeck_type_placeholder_item.rs:16:15
    |
 LL | static TEST4: _ = 145;
    |               ^
@@ -82,13 +82,13 @@ LL | static TEST4: _ = 145;
    |               help: replace with the correct type: `i32`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:22:15
+  --> $DIR/typeck_type_placeholder_item.rs:19:15
    |
 LL | static TEST5: (_, _) = (1, 2);
    |               ^^^^^^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:25:13
+  --> $DIR/typeck_type_placeholder_item.rs:22:13
    |
 LL | fn test6(_: _) { }
    |             ^ not allowed in type signatures
@@ -99,7 +99,7 @@ LL | fn test6<T>(_: T) { }
    |         ^^^    ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:28:18
+  --> $DIR/typeck_type_placeholder_item.rs:25:18
    |
 LL | fn test6_b<T>(_: _, _: T) { }
    |                  ^ not allowed in type signatures
@@ -110,7 +110,7 @@ LL | fn test6_b<T, U>(_: U, _: T) { }
    |             ^^^     ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:31:30
+  --> $DIR/typeck_type_placeholder_item.rs:28:30
    |
 LL | fn test6_c<T, K, L, A, B>(_: _, _: (T, K, L, A, B)) { }
    |                              ^ not allowed in type signatures
@@ -121,7 +121,7 @@ LL | fn test6_c<T, K, L, A, B, U>(_: U, _: (T, K, L, A, B)) { }
    |                         ^^^     ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:34:13
+  --> $DIR/typeck_type_placeholder_item.rs:31:13
    |
 LL | fn test7(x: _) { let _x: usize = x; }
    |             ^ not allowed in type signatures
@@ -132,7 +132,7 @@ LL | fn test7<T>(x: T) { let _x: usize = x; }
    |         ^^^    ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:37:22
+  --> $DIR/typeck_type_placeholder_item.rs:34:22
    |
 LL | fn test8(_f: fn() -> _) { }
    |                      ^
@@ -141,7 +141,7 @@ LL | fn test8(_f: fn() -> _) { }
    |                      help: use type parameters instead: `T`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:37:22
+  --> $DIR/typeck_type_placeholder_item.rs:34:22
    |
 LL | fn test8(_f: fn() -> _) { }
    |                      ^ not allowed in type signatures
@@ -152,7 +152,7 @@ LL | fn test8<T>(_f: fn() -> T) { }
    |         ^^^             ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:51:26
+  --> $DIR/typeck_type_placeholder_item.rs:48:26
    |
 LL | fn test11(x: &usize) -> &_ {
    |                         -^
@@ -161,7 +161,7 @@ LL | fn test11(x: &usize) -> &_ {
    |                         help: replace with the correct return type: `&'static &'static usize`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:56:52
+  --> $DIR/typeck_type_placeholder_item.rs:53:52
    |
 LL | unsafe fn test12(x: *const usize) -> *const *const _ {
    |                                      --------------^
@@ -170,7 +170,7 @@ LL | unsafe fn test12(x: *const usize) -> *const *const _ {
    |                                      help: replace with the correct return type: `*const *const usize`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for structs
-  --> $DIR/typeck_type_placeholder_item.rs:70:8
+  --> $DIR/typeck_type_placeholder_item.rs:67:8
    |
 LL |     a: _,
    |        ^ not allowed in type signatures
@@ -189,13 +189,13 @@ LL |     b: (T, T),
    |
 
 error: missing type for `static` item
-  --> $DIR/typeck_type_placeholder_item.rs:76:12
+  --> $DIR/typeck_type_placeholder_item.rs:73:12
    |
 LL |     static A = 42;
    |            ^ help: provide a type for the static variable: `A: i32`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:78:15
+  --> $DIR/typeck_type_placeholder_item.rs:75:15
    |
 LL |     static B: _ = 42;
    |               ^
@@ -204,13 +204,13 @@ LL |     static B: _ = 42;
    |               help: replace with the correct type: `i32`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:80:15
+  --> $DIR/typeck_type_placeholder_item.rs:77:15
    |
 LL |     static C: Option<_> = Some(42);
    |               ^^^^^^^^^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:82:21
+  --> $DIR/typeck_type_placeholder_item.rs:79:21
    |
 LL |     fn fn_test() -> _ { 5 }
    |                     ^
@@ -219,7 +219,7 @@ LL |     fn fn_test() -> _ { 5 }
    |                     help: replace with the correct return type: `i32`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:85:23
+  --> $DIR/typeck_type_placeholder_item.rs:82:23
    |
 LL |     fn fn_test2() -> (_, _) { (5, 5) }
    |                      -^--^-
@@ -229,7 +229,7 @@ LL |     fn fn_test2() -> (_, _) { (5, 5) }
    |                      help: replace with the correct return type: `(i32, i32)`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:88:22
+  --> $DIR/typeck_type_placeholder_item.rs:85:22
    |
 LL |     static FN_TEST3: _ = "test";
    |                      ^
@@ -238,7 +238,7 @@ LL |     static FN_TEST3: _ = "test";
    |                      help: replace with the correct type: `&str`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:91:22
+  --> $DIR/typeck_type_placeholder_item.rs:88:22
    |
 LL |     static FN_TEST4: _ = 145;
    |                      ^
@@ -247,13 +247,13 @@ LL |     static FN_TEST4: _ = 145;
    |                      help: replace with the correct type: `i32`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for static variables
-  --> $DIR/typeck_type_placeholder_item.rs:94:22
+  --> $DIR/typeck_type_placeholder_item.rs:91:22
    |
 LL |     static FN_TEST5: (_, _) = (1, 2);
    |                      ^^^^^^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:97:20
+  --> $DIR/typeck_type_placeholder_item.rs:94:20
    |
 LL |     fn fn_test6(_: _) { }
    |                    ^ not allowed in type signatures
@@ -264,7 +264,7 @@ LL |     fn fn_test6<T>(_: T) { }
    |                ^^^    ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:100:20
+  --> $DIR/typeck_type_placeholder_item.rs:97:20
    |
 LL |     fn fn_test7(x: _) { let _x: usize = x; }
    |                    ^ not allowed in type signatures
@@ -275,7 +275,7 @@ LL |     fn fn_test7<T>(x: T) { let _x: usize = x; }
    |                ^^^    ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:103:29
+  --> $DIR/typeck_type_placeholder_item.rs:100:29
    |
 LL |     fn fn_test8(_f: fn() -> _) { }
    |                             ^
@@ -284,7 +284,7 @@ LL |     fn fn_test8(_f: fn() -> _) { }
    |                             help: use type parameters instead: `T`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:103:29
+  --> $DIR/typeck_type_placeholder_item.rs:100:29
    |
 LL |     fn fn_test8(_f: fn() -> _) { }
    |                             ^ not allowed in type signatures
@@ -295,7 +295,7 @@ LL |     fn fn_test8<T>(_f: fn() -> T) { }
    |                ^^^             ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for structs
-  --> $DIR/typeck_type_placeholder_item.rs:126:12
+  --> $DIR/typeck_type_placeholder_item.rs:123:12
    |
 LL |         a: _,
    |            ^ not allowed in type signatures
@@ -314,13 +314,13 @@ LL |         b: (T, T),
    |
 
 error[E0282]: type annotations needed
-  --> $DIR/typeck_type_placeholder_item.rs:131:18
+  --> $DIR/typeck_type_placeholder_item.rs:128:18
    |
 LL |     fn fn_test11(_: _) -> (_, _) { panic!() }
    |                  ^ cannot infer type
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:131:28
+  --> $DIR/typeck_type_placeholder_item.rs:128:28
    |
 LL |     fn fn_test11(_: _) -> (_, _) { panic!() }
    |                            ^  ^ not allowed in type signatures
@@ -328,7 +328,7 @@ LL |     fn fn_test11(_: _) -> (_, _) { panic!() }
    |                            not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:135:30
+  --> $DIR/typeck_type_placeholder_item.rs:132:30
    |
 LL |     fn fn_test12(x: i32) -> (_, _) { (x, x) }
    |                             -^--^-
@@ -338,7 +338,7 @@ LL |     fn fn_test12(x: i32) -> (_, _) { (x, x) }
    |                             help: replace with the correct return type: `(i32, i32)`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:138:33
+  --> $DIR/typeck_type_placeholder_item.rs:135:33
    |
 LL |     fn fn_test13(x: _) -> (i32, _) { (x, x) }
    |                           ------^-
@@ -347,7 +347,7 @@ LL |     fn fn_test13(x: _) -> (i32, _) { (x, x) }
    |                           help: replace with the correct return type: `(i32, i32)`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for structs
-  --> $DIR/typeck_type_placeholder_item.rs:157:21
+  --> $DIR/typeck_type_placeholder_item.rs:154:21
    |
 LL | struct BadStruct<_>(_);
    |                     ^ not allowed in type signatures
@@ -358,7 +358,7 @@ LL | struct BadStruct<T>(T);
    |                  ^  ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for implementations
-  --> $DIR/typeck_type_placeholder_item.rs:162:15
+  --> $DIR/typeck_type_placeholder_item.rs:159:15
    |
 LL | impl BadTrait<_> for BadStruct<_> {}
    |               ^                ^ not allowed in type signatures
@@ -371,13 +371,13 @@ LL | impl<T> BadTrait<T> for BadStruct<T> {}
    |     ^^^          ^                ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for opaque types
-  --> $DIR/typeck_type_placeholder_item.rs:165:34
+  --> $DIR/typeck_type_placeholder_item.rs:162:34
    |
 LL | fn impl_trait() -> impl BadTrait<_> {
    |                                  ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for structs
-  --> $DIR/typeck_type_placeholder_item.rs:170:25
+  --> $DIR/typeck_type_placeholder_item.rs:167:25
    |
 LL | struct BadStruct1<_, _>(_);
    |                         ^ not allowed in type signatures
@@ -388,7 +388,7 @@ LL | struct BadStruct1<T, _>(T);
    |                   ^     ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for structs
-  --> $DIR/typeck_type_placeholder_item.rs:175:25
+  --> $DIR/typeck_type_placeholder_item.rs:172:25
    |
 LL | struct BadStruct2<_, T>(_, T);
    |                         ^ not allowed in type signatures
@@ -399,19 +399,19 @@ LL | struct BadStruct2<U, T>(U, T);
    |                   ^     ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for type aliases
-  --> $DIR/typeck_type_placeholder_item.rs:179:14
+  --> $DIR/typeck_type_placeholder_item.rs:176:14
    |
 LL | type X = Box<_>;
    |              ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for opaque types
-  --> $DIR/typeck_type_placeholder_item.rs:185:21
+  --> $DIR/typeck_type_placeholder_item.rs:182:21
    |
 LL | type Y = impl Trait<_>;
    |                     ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:219:31
+  --> $DIR/typeck_type_placeholder_item.rs:216:31
    |
 LL | fn value() -> Option<&'static _> {
    |               ----------------^-
@@ -420,7 +420,7 @@ LL | fn value() -> Option<&'static _> {
    |               help: replace with the correct return type: `Option<&'static u8>`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for constants
-  --> $DIR/typeck_type_placeholder_item.rs:224:10
+  --> $DIR/typeck_type_placeholder_item.rs:221:10
    |
 LL | const _: Option<_> = map(value);
    |          ^^^^^^^^^
@@ -429,7 +429,7 @@ LL | const _: Option<_> = map(value);
    |          help: replace with the correct type: `Option<u8>`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:143:31
+  --> $DIR/typeck_type_placeholder_item.rs:140:31
    |
 LL |     fn method_test1(&self, x: _);
    |                               ^ not allowed in type signatures
@@ -440,7 +440,7 @@ LL |     fn method_test1<T>(&self, x: T);
    |                    ^^^           ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:145:31
+  --> $DIR/typeck_type_placeholder_item.rs:142:31
    |
 LL |     fn method_test2(&self, x: _) -> _;
    |                               ^     ^ not allowed in type signatures
@@ -453,7 +453,7 @@ LL |     fn method_test2<T>(&self, x: T) -> T;
    |                    ^^^           ^     ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:147:31
+  --> $DIR/typeck_type_placeholder_item.rs:144:31
    |
 LL |     fn method_test3(&self) -> _;
    |                               ^ not allowed in type signatures
@@ -464,7 +464,7 @@ LL |     fn method_test3<T>(&self) -> T;
    |                    ^^^           ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:149:26
+  --> $DIR/typeck_type_placeholder_item.rs:146:26
    |
 LL |     fn assoc_fn_test1(x: _);
    |                          ^ not allowed in type signatures
@@ -475,7 +475,7 @@ LL |     fn assoc_fn_test1<T>(x: T);
    |                      ^^^    ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:151:26
+  --> $DIR/typeck_type_placeholder_item.rs:148:26
    |
 LL |     fn assoc_fn_test2(x: _) -> _;
    |                          ^     ^ not allowed in type signatures
@@ -488,7 +488,7 @@ LL |     fn assoc_fn_test2<T>(x: T) -> T;
    |                      ^^^    ^     ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:153:28
+  --> $DIR/typeck_type_placeholder_item.rs:150:28
    |
 LL |     fn assoc_fn_test3() -> _;
    |                            ^ not allowed in type signatures
@@ -499,19 +499,19 @@ LL |     fn assoc_fn_test3<T>() -> T;
    |                      ^^^      ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for associated types
-  --> $DIR/typeck_type_placeholder_item.rs:193:14
+  --> $DIR/typeck_type_placeholder_item.rs:190:14
    |
 LL |     type B = _;
    |              ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for constants
-  --> $DIR/typeck_type_placeholder_item.rs:195:14
+  --> $DIR/typeck_type_placeholder_item.rs:192:14
    |
 LL |     const C: _;
    |              ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for constants
-  --> $DIR/typeck_type_placeholder_item.rs:197:14
+  --> $DIR/typeck_type_placeholder_item.rs:194:14
    |
 LL |     const D: _ = 42;
    |              ^
@@ -520,13 +520,13 @@ LL |     const D: _ = 42;
    |              help: replace with the correct type: `i32`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for associated types
-  --> $DIR/typeck_type_placeholder_item.rs:200:26
+  --> $DIR/typeck_type_placeholder_item.rs:197:26
    |
 LL |     type F: std::ops::Fn(_);
    |                          ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:44:24
+  --> $DIR/typeck_type_placeholder_item.rs:41:24
    |
 LL |     fn test9(&self) -> _ { () }
    |                        ^
@@ -535,7 +535,7 @@ LL |     fn test9(&self) -> _ { () }
    |                        help: replace with the correct return type: `()`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:47:27
+  --> $DIR/typeck_type_placeholder_item.rs:44:27
    |
 LL |     fn test10(&self, _x : _) { }
    |                           ^ not allowed in type signatures
@@ -546,7 +546,7 @@ LL |     fn test10<T>(&self, _x : T) { }
    |              ^^^             ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:62:24
+  --> $DIR/typeck_type_placeholder_item.rs:59:24
    |
 LL |     fn clone(&self) -> _ { Test9 }
    |                        ^
@@ -555,7 +555,7 @@ LL |     fn clone(&self) -> _ { Test9 }
    |                        help: replace with the correct return type: `Test9`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:65:37
+  --> $DIR/typeck_type_placeholder_item.rs:62:37
    |
 LL |     fn clone_from(&mut self, other: _) { *self = Test9; }
    |                                     ^ not allowed in type signatures
@@ -566,7 +566,7 @@ LL |     fn clone_from<T>(&mut self, other: T) { *self = Test9; }
    |                  ^^^                   ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:110:31
+  --> $DIR/typeck_type_placeholder_item.rs:107:31
    |
 LL |         fn fn_test9(&self) -> _ { () }
    |                               ^
@@ -575,7 +575,7 @@ LL |         fn fn_test9(&self) -> _ { () }
    |                               help: replace with the correct return type: `()`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:113:34
+  --> $DIR/typeck_type_placeholder_item.rs:110:34
    |
 LL |         fn fn_test10(&self, _x : _) { }
    |                                  ^ not allowed in type signatures
@@ -586,7 +586,7 @@ LL |         fn fn_test10<T>(&self, _x : T) { }
    |                     ^^^             ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for return types
-  --> $DIR/typeck_type_placeholder_item.rs:118:28
+  --> $DIR/typeck_type_placeholder_item.rs:115:28
    |
 LL |         fn clone(&self) -> _ { FnTest9 }
    |                            ^
@@ -595,7 +595,7 @@ LL |         fn clone(&self) -> _ { FnTest9 }
    |                            help: replace with the correct return type: `FnTest9`
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for functions
-  --> $DIR/typeck_type_placeholder_item.rs:121:41
+  --> $DIR/typeck_type_placeholder_item.rs:118:41
    |
 LL |         fn clone_from(&mut self, other: _) { *self = FnTest9; }
    |                                         ^ not allowed in type signatures
@@ -606,25 +606,25 @@ LL |         fn clone_from<T>(&mut self, other: T) { *self = FnTest9; }
    |                      ^^^                   ^
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for associated types
-  --> $DIR/typeck_type_placeholder_item.rs:204:14
+  --> $DIR/typeck_type_placeholder_item.rs:201:14
    |
 LL |     type A = _;
    |              ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for associated types
-  --> $DIR/typeck_type_placeholder_item.rs:206:14
+  --> $DIR/typeck_type_placeholder_item.rs:203:14
    |
 LL |     type B = _;
    |              ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for constants
-  --> $DIR/typeck_type_placeholder_item.rs:208:14
+  --> $DIR/typeck_type_placeholder_item.rs:205:14
    |
 LL |     const C: _;
    |              ^ not allowed in type signatures
 
 error[E0121]: the type placeholder `_` is not allowed within types on item signatures for constants
-  --> $DIR/typeck_type_placeholder_item.rs:211:14
+  --> $DIR/typeck_type_placeholder_item.rs:208:14
    |
 LL |     const D: _ = 42;
    |              ^
diff --git a/src/test/ui/wf/issue-87495.rs b/src/test/ui/wf/issue-87495.rs
new file mode 100644
index 00000000000..5aab7431134
--- /dev/null
+++ b/src/test/ui/wf/issue-87495.rs
@@ -0,0 +1,8 @@
+// Regression test for the ICE described in #87495.
+
+trait T {
+    const CONST: (bool, dyn T);
+    //~^ ERROR: the trait `T` cannot be made into an object [E0038]
+}
+
+fn main() {}
diff --git a/src/test/ui/wf/issue-87495.stderr b/src/test/ui/wf/issue-87495.stderr
new file mode 100644
index 00000000000..010200b5ded
--- /dev/null
+++ b/src/test/ui/wf/issue-87495.stderr
@@ -0,0 +1,18 @@
+error[E0038]: the trait `T` cannot be made into an object
+  --> $DIR/issue-87495.rs:4:25
+   |
+LL |     const CONST: (bool, dyn T);
+   |                         ^^^^^ `T` cannot be made into an object
+   |
+   = help: consider moving `CONST` to another trait
+note: for a trait to be "object safe" it needs to allow building a vtable to allow the call to be resolvable dynamically; for more information visit <https://doc.rust-lang.org/reference/items/traits.html#object-safety>
+  --> $DIR/issue-87495.rs:4:11
+   |
+LL | trait T {
+   |       - this trait cannot be made into an object...
+LL |     const CONST: (bool, dyn T);
+   |           ^^^^^ ...because it contains this associated `const`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0038`.
diff --git a/src/tools/miri b/src/tools/miri
-Subproject e2872a3f2a26154b91a6a6085d56016509803c6
+Subproject 453e3ef7dab5aad6450bee09b2c02de94c5b18c