about summary refs log tree commit diff
path: root/src/test/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui')
-rw-r--r--src/test/ui/abi/abi-sysv64-arg-passing.rs (renamed from src/test/ui/abi-sysv64-arg-passing.rs)0
-rw-r--r--src/test/ui/abi/abi-sysv64-register-usage.rs (renamed from src/test/ui/abi-sysv64-register-usage.rs)0
-rw-r--r--src/test/ui/abi/abort-on-c-abi.rs (renamed from src/test/ui/abort-on-c-abi.rs)0
-rw-r--r--src/test/ui/abi/anon-extern-mod.rs (renamed from src/test/ui/anon-extern-mod.rs)0
-rw-r--r--src/test/ui/abi/auxiliary/anon-extern-mod-cross-crate-1.rs (renamed from src/test/ui/auxiliary/anon-extern-mod-cross-crate-1.rs)0
-rw-r--r--src/test/ui/abi/auxiliary/foreign_lib.rs (renamed from src/test/ui/auxiliary/foreign_lib.rs)0
-rw-r--r--src/test/ui/abi/c-stack-as-value.rs (renamed from src/test/ui/c-stack-as-value.rs)0
-rw-r--r--src/test/ui/abi/cabi-int-widening.rs (renamed from src/test/ui/cabi-int-widening.rs)0
-rw-r--r--src/test/ui/abi/consts/auxiliary/anon-extern-mod-cross-crate-1.rs (renamed from src/test/ui/consts/auxiliary/anon-extern-mod-cross-crate-1.rs)0
-rw-r--r--src/test/ui/abi/cross-crate/anon-extern-mod-cross-crate-2.rs (renamed from src/test/ui/cross-crate/anon-extern-mod-cross-crate-2.rs)0
-rw-r--r--src/test/ui/abi/cross-crate/auxiliary/anon-extern-mod-cross-crate-1.rs (renamed from src/test/ui/cross-crate/auxiliary/anon-extern-mod-cross-crate-1.rs)0
-rw-r--r--src/test/ui/abi/duplicated-external-mods.rs (renamed from src/test/ui/duplicated-external-mods.rs)0
-rw-r--r--src/test/ui/abi/extern/auxiliary/extern-crosscrate-source.rs (renamed from src/test/ui/extern/auxiliary/extern-crosscrate-source.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-call-deep.rs (renamed from src/test/ui/extern/extern-call-deep.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-call-deep2.rs (renamed from src/test/ui/extern/extern-call-deep2.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-call-direct.rs (renamed from src/test/ui/extern/extern-call-direct.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-call-indirect.rs (renamed from src/test/ui/extern/extern-call-indirect.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-call-scrub.rs (renamed from src/test/ui/extern/extern-call-scrub.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-crosscrate.rs (renamed from src/test/ui/extern/extern-crosscrate.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-TwoU16s.rs (renamed from src/test/ui/extern/extern-pass-TwoU16s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-TwoU32s.rs (renamed from src/test/ui/extern/extern-pass-TwoU32s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-TwoU64s.rs (renamed from src/test/ui/extern/extern-pass-TwoU64s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-TwoU8s.rs (renamed from src/test/ui/extern/extern-pass-TwoU8s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-char.rs (renamed from src/test/ui/extern/extern-pass-char.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-double.rs (renamed from src/test/ui/extern/extern-pass-double.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-empty.rs (renamed from src/test/ui/extern/extern-pass-empty.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-u32.rs (renamed from src/test/ui/extern/extern-pass-u32.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-pass-u64.rs (renamed from src/test/ui/extern/extern-pass-u64.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-return-TwoU16s.rs (renamed from src/test/ui/extern/extern-return-TwoU16s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-return-TwoU32s.rs (renamed from src/test/ui/extern/extern-return-TwoU32s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-return-TwoU64s.rs (renamed from src/test/ui/extern/extern-return-TwoU64s.rs)0
-rw-r--r--src/test/ui/abi/extern/extern-return-TwoU8s.rs (renamed from src/test/ui/extern/extern-return-TwoU8s.rs)0
-rw-r--r--src/test/ui/abi/foreign/auxiliary/foreign_lib.rs (renamed from src/test/ui/foreign/auxiliary/foreign_lib.rs)0
-rw-r--r--src/test/ui/abi/foreign/foreign-call-no-runtime.rs (renamed from src/test/ui/foreign/foreign-call-no-runtime.rs)0
-rw-r--r--src/test/ui/abi/foreign/foreign-dupe.rs (renamed from src/test/ui/foreign/foreign-dupe.rs)0
-rw-r--r--src/test/ui/abi/foreign/foreign-fn-with-byval.rs (renamed from src/test/ui/foreign/foreign-fn-with-byval.rs)0
-rw-r--r--src/test/ui/abi/foreign/foreign-no-abi.rs (renamed from src/test/ui/foreign/foreign-no-abi.rs)0
-rw-r--r--src/test/ui/abi/invoke-external-foreign.rs (renamed from src/test/ui/invoke-external-foreign.rs)0
-rw-r--r--src/test/ui/abi/lib-defaults.rs (renamed from src/test/ui/lib-defaults.rs)0
-rw-r--r--src/test/ui/abi/macros/macros-in-extern.rs (renamed from src/test/ui/macros/macros-in-extern.rs)0
-rw-r--r--src/test/ui/abi/macros/macros-in-extern.stderr (renamed from src/test/ui/macros/macros-in-extern.stderr)0
-rw-r--r--src/test/ui/abi/mir/mir_codegen_calls_variadic.rs (renamed from src/test/ui/mir/mir_codegen_calls_variadic.rs)0
-rw-r--r--src/test/ui/abi/numbers-arithmetic/i128-ffi.rs (renamed from src/test/ui/numbers-arithmetic/i128-ffi.rs)0
-rw-r--r--src/test/ui/abi/proc-macro/auxiliary/test-macros.rs112
-rw-r--r--src/test/ui/abi/proc-macro/macros-in-extern.rs (renamed from src/test/ui/proc-macro/macros-in-extern.rs)0
-rw-r--r--src/test/ui/abi/proc-macro/macros-in-extern.stderr (renamed from src/test/ui/proc-macro/macros-in-extern.stderr)0
-rw-r--r--src/test/ui/abi/segfault-no-out-of-stack.rs (renamed from src/test/ui/segfault-no-out-of-stack.rs)0
-rw-r--r--src/test/ui/abi/stack-probes-lto.rs (renamed from src/test/ui/stack-probes-lto.rs)0
-rw-r--r--src/test/ui/abi/stack-probes.rs (renamed from src/test/ui/stack-probes.rs)0
-rw-r--r--src/test/ui/abi/statics/static-mut-foreign.rs (renamed from src/test/ui/statics/static-mut-foreign.rs)0
-rw-r--r--src/test/ui/abi/struct-enums/struct-return.rs (renamed from src/test/ui/structs-enums/struct-return.rs)0
-rw-r--r--src/test/ui/abi/union/union-c-interop.rs (renamed from src/test/ui/union/union-c-interop.rs)0
-rw-r--r--src/test/ui/abi/variadic-ffi.rs (renamed from src/test/ui/variadic-ffi.rs)0
-rw-r--r--src/test/ui/async-await/suggest-switching-edition-on-await.rs45
-rw-r--r--src/test/ui/async-await/suggest-switching-edition-on-await.stderr43
-rw-r--r--src/test/ui/feature-gates/feature-gate-rustc-diagnostic-macros.stderr12
-rw-r--r--src/test/ui/hygiene/no_implicit_prelude.stderr16
-rw-r--r--src/test/ui/imports/local-modularized-tricky-fail-1.stderr38
-rw-r--r--src/test/ui/imports/shadow_builtin_macros.stderr28
-rw-r--r--src/test/ui/issues/issue-49074.stderr12
-rw-r--r--src/test/ui/proc-macro/macro-namespace-reserved-2.stderr24
-rw-r--r--src/test/ui/reserved/reserved-attr-on-macro.stderr12
-rw-r--r--src/test/ui/suggestions/dont-suggest-try_into-in-macros.rs3
-rw-r--r--src/test/ui/suggestions/dont-suggest-try_into-in-macros.stderr11
64 files changed, 285 insertions, 71 deletions
diff --git a/src/test/ui/abi-sysv64-arg-passing.rs b/src/test/ui/abi/abi-sysv64-arg-passing.rs
index d40006eb9b6..d40006eb9b6 100644
--- a/src/test/ui/abi-sysv64-arg-passing.rs
+++ b/src/test/ui/abi/abi-sysv64-arg-passing.rs
diff --git a/src/test/ui/abi-sysv64-register-usage.rs b/src/test/ui/abi/abi-sysv64-register-usage.rs
index 0c7e2d906b7..0c7e2d906b7 100644
--- a/src/test/ui/abi-sysv64-register-usage.rs
+++ b/src/test/ui/abi/abi-sysv64-register-usage.rs
diff --git a/src/test/ui/abort-on-c-abi.rs b/src/test/ui/abi/abort-on-c-abi.rs
index cd7dd1b6a45..cd7dd1b6a45 100644
--- a/src/test/ui/abort-on-c-abi.rs
+++ b/src/test/ui/abi/abort-on-c-abi.rs
diff --git a/src/test/ui/anon-extern-mod.rs b/src/test/ui/abi/anon-extern-mod.rs
index 37a67876c91..37a67876c91 100644
--- a/src/test/ui/anon-extern-mod.rs
+++ b/src/test/ui/abi/anon-extern-mod.rs
diff --git a/src/test/ui/auxiliary/anon-extern-mod-cross-crate-1.rs b/src/test/ui/abi/auxiliary/anon-extern-mod-cross-crate-1.rs
index 948b5e688eb..948b5e688eb 100644
--- a/src/test/ui/auxiliary/anon-extern-mod-cross-crate-1.rs
+++ b/src/test/ui/abi/auxiliary/anon-extern-mod-cross-crate-1.rs
diff --git a/src/test/ui/auxiliary/foreign_lib.rs b/src/test/ui/abi/auxiliary/foreign_lib.rs
index de6b0e2118a..de6b0e2118a 100644
--- a/src/test/ui/auxiliary/foreign_lib.rs
+++ b/src/test/ui/abi/auxiliary/foreign_lib.rs
diff --git a/src/test/ui/c-stack-as-value.rs b/src/test/ui/abi/c-stack-as-value.rs
index 7595b76fb3f..7595b76fb3f 100644
--- a/src/test/ui/c-stack-as-value.rs
+++ b/src/test/ui/abi/c-stack-as-value.rs
diff --git a/src/test/ui/cabi-int-widening.rs b/src/test/ui/abi/cabi-int-widening.rs
index 240eaebf3d6..240eaebf3d6 100644
--- a/src/test/ui/cabi-int-widening.rs
+++ b/src/test/ui/abi/cabi-int-widening.rs
diff --git a/src/test/ui/consts/auxiliary/anon-extern-mod-cross-crate-1.rs b/src/test/ui/abi/consts/auxiliary/anon-extern-mod-cross-crate-1.rs
index 948b5e688eb..948b5e688eb 100644
--- a/src/test/ui/consts/auxiliary/anon-extern-mod-cross-crate-1.rs
+++ b/src/test/ui/abi/consts/auxiliary/anon-extern-mod-cross-crate-1.rs
diff --git a/src/test/ui/cross-crate/anon-extern-mod-cross-crate-2.rs b/src/test/ui/abi/cross-crate/anon-extern-mod-cross-crate-2.rs
index 77168be5374..77168be5374 100644
--- a/src/test/ui/cross-crate/anon-extern-mod-cross-crate-2.rs
+++ b/src/test/ui/abi/cross-crate/anon-extern-mod-cross-crate-2.rs
diff --git a/src/test/ui/cross-crate/auxiliary/anon-extern-mod-cross-crate-1.rs b/src/test/ui/abi/cross-crate/auxiliary/anon-extern-mod-cross-crate-1.rs
index 948b5e688eb..948b5e688eb 100644
--- a/src/test/ui/cross-crate/auxiliary/anon-extern-mod-cross-crate-1.rs
+++ b/src/test/ui/abi/cross-crate/auxiliary/anon-extern-mod-cross-crate-1.rs
diff --git a/src/test/ui/duplicated-external-mods.rs b/src/test/ui/abi/duplicated-external-mods.rs
index 05a279a3014..05a279a3014 100644
--- a/src/test/ui/duplicated-external-mods.rs
+++ b/src/test/ui/abi/duplicated-external-mods.rs
diff --git a/src/test/ui/extern/auxiliary/extern-crosscrate-source.rs b/src/test/ui/abi/extern/auxiliary/extern-crosscrate-source.rs
index d4568d38e25..d4568d38e25 100644
--- a/src/test/ui/extern/auxiliary/extern-crosscrate-source.rs
+++ b/src/test/ui/abi/extern/auxiliary/extern-crosscrate-source.rs
diff --git a/src/test/ui/extern/extern-call-deep.rs b/src/test/ui/abi/extern/extern-call-deep.rs
index 81f884dada9..81f884dada9 100644
--- a/src/test/ui/extern/extern-call-deep.rs
+++ b/src/test/ui/abi/extern/extern-call-deep.rs
diff --git a/src/test/ui/extern/extern-call-deep2.rs b/src/test/ui/abi/extern/extern-call-deep2.rs
index b31489b1e10..b31489b1e10 100644
--- a/src/test/ui/extern/extern-call-deep2.rs
+++ b/src/test/ui/abi/extern/extern-call-deep2.rs
diff --git a/src/test/ui/extern/extern-call-direct.rs b/src/test/ui/abi/extern/extern-call-direct.rs
index 72041764215..72041764215 100644
--- a/src/test/ui/extern/extern-call-direct.rs
+++ b/src/test/ui/abi/extern/extern-call-direct.rs
diff --git a/src/test/ui/extern/extern-call-indirect.rs b/src/test/ui/abi/extern/extern-call-indirect.rs
index 158b54e4b8c..158b54e4b8c 100644
--- a/src/test/ui/extern/extern-call-indirect.rs
+++ b/src/test/ui/abi/extern/extern-call-indirect.rs
diff --git a/src/test/ui/extern/extern-call-scrub.rs b/src/test/ui/abi/extern/extern-call-scrub.rs
index a7b1065c9e1..a7b1065c9e1 100644
--- a/src/test/ui/extern/extern-call-scrub.rs
+++ b/src/test/ui/abi/extern/extern-call-scrub.rs
diff --git a/src/test/ui/extern/extern-crosscrate.rs b/src/test/ui/abi/extern/extern-crosscrate.rs
index 123ce20ca26..123ce20ca26 100644
--- a/src/test/ui/extern/extern-crosscrate.rs
+++ b/src/test/ui/abi/extern/extern-crosscrate.rs
diff --git a/src/test/ui/extern/extern-pass-TwoU16s.rs b/src/test/ui/abi/extern/extern-pass-TwoU16s.rs
index 285bce2e19c..285bce2e19c 100644
--- a/src/test/ui/extern/extern-pass-TwoU16s.rs
+++ b/src/test/ui/abi/extern/extern-pass-TwoU16s.rs
diff --git a/src/test/ui/extern/extern-pass-TwoU32s.rs b/src/test/ui/abi/extern/extern-pass-TwoU32s.rs
index fb18aa8d22f..fb18aa8d22f 100644
--- a/src/test/ui/extern/extern-pass-TwoU32s.rs
+++ b/src/test/ui/abi/extern/extern-pass-TwoU32s.rs
diff --git a/src/test/ui/extern/extern-pass-TwoU64s.rs b/src/test/ui/abi/extern/extern-pass-TwoU64s.rs
index 419648263aa..419648263aa 100644
--- a/src/test/ui/extern/extern-pass-TwoU64s.rs
+++ b/src/test/ui/abi/extern/extern-pass-TwoU64s.rs
diff --git a/src/test/ui/extern/extern-pass-TwoU8s.rs b/src/test/ui/abi/extern/extern-pass-TwoU8s.rs
index 53a6a0f29f8..53a6a0f29f8 100644
--- a/src/test/ui/extern/extern-pass-TwoU8s.rs
+++ b/src/test/ui/abi/extern/extern-pass-TwoU8s.rs
diff --git a/src/test/ui/extern/extern-pass-char.rs b/src/test/ui/abi/extern/extern-pass-char.rs
index 22f841b4552..22f841b4552 100644
--- a/src/test/ui/extern/extern-pass-char.rs
+++ b/src/test/ui/abi/extern/extern-pass-char.rs
diff --git a/src/test/ui/extern/extern-pass-double.rs b/src/test/ui/abi/extern/extern-pass-double.rs
index dbd0a2dfa48..dbd0a2dfa48 100644
--- a/src/test/ui/extern/extern-pass-double.rs
+++ b/src/test/ui/abi/extern/extern-pass-double.rs
diff --git a/src/test/ui/extern/extern-pass-empty.rs b/src/test/ui/abi/extern/extern-pass-empty.rs
index 07099a24204..07099a24204 100644
--- a/src/test/ui/extern/extern-pass-empty.rs
+++ b/src/test/ui/abi/extern/extern-pass-empty.rs
diff --git a/src/test/ui/extern/extern-pass-u32.rs b/src/test/ui/abi/extern/extern-pass-u32.rs
index f2efdb7d366..f2efdb7d366 100644
--- a/src/test/ui/extern/extern-pass-u32.rs
+++ b/src/test/ui/abi/extern/extern-pass-u32.rs
diff --git a/src/test/ui/extern/extern-pass-u64.rs b/src/test/ui/abi/extern/extern-pass-u64.rs
index 975446d430c..975446d430c 100644
--- a/src/test/ui/extern/extern-pass-u64.rs
+++ b/src/test/ui/abi/extern/extern-pass-u64.rs
diff --git a/src/test/ui/extern/extern-return-TwoU16s.rs b/src/test/ui/abi/extern/extern-return-TwoU16s.rs
index dd884ee77fe..dd884ee77fe 100644
--- a/src/test/ui/extern/extern-return-TwoU16s.rs
+++ b/src/test/ui/abi/extern/extern-return-TwoU16s.rs
diff --git a/src/test/ui/extern/extern-return-TwoU32s.rs b/src/test/ui/abi/extern/extern-return-TwoU32s.rs
index d6aaf5c9eaf..d6aaf5c9eaf 100644
--- a/src/test/ui/extern/extern-return-TwoU32s.rs
+++ b/src/test/ui/abi/extern/extern-return-TwoU32s.rs
diff --git a/src/test/ui/extern/extern-return-TwoU64s.rs b/src/test/ui/abi/extern/extern-return-TwoU64s.rs
index c5e4ebadc18..c5e4ebadc18 100644
--- a/src/test/ui/extern/extern-return-TwoU64s.rs
+++ b/src/test/ui/abi/extern/extern-return-TwoU64s.rs
diff --git a/src/test/ui/extern/extern-return-TwoU8s.rs b/src/test/ui/abi/extern/extern-return-TwoU8s.rs
index a7cd21b2073..a7cd21b2073 100644
--- a/src/test/ui/extern/extern-return-TwoU8s.rs
+++ b/src/test/ui/abi/extern/extern-return-TwoU8s.rs
diff --git a/src/test/ui/foreign/auxiliary/foreign_lib.rs b/src/test/ui/abi/foreign/auxiliary/foreign_lib.rs
index de6b0e2118a..de6b0e2118a 100644
--- a/src/test/ui/foreign/auxiliary/foreign_lib.rs
+++ b/src/test/ui/abi/foreign/auxiliary/foreign_lib.rs
diff --git a/src/test/ui/foreign/foreign-call-no-runtime.rs b/src/test/ui/abi/foreign/foreign-call-no-runtime.rs
index c6afa07ad05..c6afa07ad05 100644
--- a/src/test/ui/foreign/foreign-call-no-runtime.rs
+++ b/src/test/ui/abi/foreign/foreign-call-no-runtime.rs
diff --git a/src/test/ui/foreign/foreign-dupe.rs b/src/test/ui/abi/foreign/foreign-dupe.rs
index 3c9f0f583d4..3c9f0f583d4 100644
--- a/src/test/ui/foreign/foreign-dupe.rs
+++ b/src/test/ui/abi/foreign/foreign-dupe.rs
diff --git a/src/test/ui/foreign/foreign-fn-with-byval.rs b/src/test/ui/abi/foreign/foreign-fn-with-byval.rs
index 3a35599aa57..3a35599aa57 100644
--- a/src/test/ui/foreign/foreign-fn-with-byval.rs
+++ b/src/test/ui/abi/foreign/foreign-fn-with-byval.rs
diff --git a/src/test/ui/foreign/foreign-no-abi.rs b/src/test/ui/abi/foreign/foreign-no-abi.rs
index 2f33fb47656..2f33fb47656 100644
--- a/src/test/ui/foreign/foreign-no-abi.rs
+++ b/src/test/ui/abi/foreign/foreign-no-abi.rs
diff --git a/src/test/ui/invoke-external-foreign.rs b/src/test/ui/abi/invoke-external-foreign.rs
index dbd2b4ad865..dbd2b4ad865 100644
--- a/src/test/ui/invoke-external-foreign.rs
+++ b/src/test/ui/abi/invoke-external-foreign.rs
diff --git a/src/test/ui/lib-defaults.rs b/src/test/ui/abi/lib-defaults.rs
index cd0b0bb2321..cd0b0bb2321 100644
--- a/src/test/ui/lib-defaults.rs
+++ b/src/test/ui/abi/lib-defaults.rs
diff --git a/src/test/ui/macros/macros-in-extern.rs b/src/test/ui/abi/macros/macros-in-extern.rs
index bba8b15cdb0..bba8b15cdb0 100644
--- a/src/test/ui/macros/macros-in-extern.rs
+++ b/src/test/ui/abi/macros/macros-in-extern.rs
diff --git a/src/test/ui/macros/macros-in-extern.stderr b/src/test/ui/abi/macros/macros-in-extern.stderr
index 6ee33f4ab61..6ee33f4ab61 100644
--- a/src/test/ui/macros/macros-in-extern.stderr
+++ b/src/test/ui/abi/macros/macros-in-extern.stderr
diff --git a/src/test/ui/mir/mir_codegen_calls_variadic.rs b/src/test/ui/abi/mir/mir_codegen_calls_variadic.rs
index dc9fee03b77..dc9fee03b77 100644
--- a/src/test/ui/mir/mir_codegen_calls_variadic.rs
+++ b/src/test/ui/abi/mir/mir_codegen_calls_variadic.rs
diff --git a/src/test/ui/numbers-arithmetic/i128-ffi.rs b/src/test/ui/abi/numbers-arithmetic/i128-ffi.rs
index 19edf9779f3..19edf9779f3 100644
--- a/src/test/ui/numbers-arithmetic/i128-ffi.rs
+++ b/src/test/ui/abi/numbers-arithmetic/i128-ffi.rs
diff --git a/src/test/ui/abi/proc-macro/auxiliary/test-macros.rs b/src/test/ui/abi/proc-macro/auxiliary/test-macros.rs
new file mode 100644
index 00000000000..27efa44f980
--- /dev/null
+++ b/src/test/ui/abi/proc-macro/auxiliary/test-macros.rs
@@ -0,0 +1,112 @@
+// force-host
+// no-prefer-dynamic
+
+// Proc macros commonly used by tests.
+// `panic`/`print` -> `panic_bang`/`print_bang` to avoid conflicts with standard macros.
+
+#![crate_type = "proc-macro"]
+
+extern crate proc_macro;
+use proc_macro::TokenStream;
+
+// Macro that return empty token stream.
+
+#[proc_macro]
+pub fn empty(_: TokenStream) -> TokenStream {
+    TokenStream::new()
+}
+
+#[proc_macro_attribute]
+pub fn empty_attr(_: TokenStream, _: TokenStream) -> TokenStream {
+    TokenStream::new()
+}
+
+#[proc_macro_derive(Empty, attributes(empty_helper))]
+pub fn empty_derive(_: TokenStream) -> TokenStream {
+    TokenStream::new()
+}
+
+// Macro that panics.
+
+#[proc_macro]
+pub fn panic_bang(_: TokenStream) -> TokenStream {
+    panic!("panic-bang");
+}
+
+#[proc_macro_attribute]
+pub fn panic_attr(_: TokenStream, _: TokenStream) -> TokenStream {
+    panic!("panic-attr");
+}
+
+#[proc_macro_derive(Panic, attributes(panic_helper))]
+pub fn panic_derive(_: TokenStream) -> TokenStream {
+    panic!("panic-derive");
+}
+
+// Macros that return the input stream.
+
+#[proc_macro]
+pub fn identity(input: TokenStream) -> TokenStream {
+    input
+}
+
+#[proc_macro_attribute]
+pub fn identity_attr(_: TokenStream, input: TokenStream) -> TokenStream {
+    input
+}
+
+#[proc_macro_derive(Identity, attributes(identity_helper))]
+pub fn identity_derive(input: TokenStream) -> TokenStream {
+    input
+}
+
+// Macros that iterate and re-collect the input stream.
+
+#[proc_macro]
+pub fn recollect(input: TokenStream) -> TokenStream {
+    input.into_iter().collect()
+}
+
+#[proc_macro_attribute]
+pub fn recollect_attr(_: TokenStream, input: TokenStream) -> TokenStream {
+    input.into_iter().collect()
+}
+
+#[proc_macro_derive(Recollect, attributes(recollect_helper))]
+pub fn recollect_derive(input: TokenStream) -> TokenStream {
+    input.into_iter().collect()
+}
+
+// Macros that print their input in the original and re-collected forms (if they differ).
+
+fn print_helper(input: TokenStream, kind: &str) -> TokenStream {
+    let input_display = format!("{}", input);
+    let input_debug = format!("{:#?}", input);
+    let recollected = input.into_iter().collect();
+    let recollected_display = format!("{}", recollected);
+    let recollected_debug = format!("{:#?}", recollected);
+    println!("PRINT-{} INPUT (DISPLAY): {}", kind, input_display);
+    if recollected_display != input_display {
+        println!("PRINT-{} RE-COLLECTED (DISPLAY): {}", kind, recollected_display);
+    }
+    println!("PRINT-{} INPUT (DEBUG): {}", kind, input_debug);
+    if recollected_debug != input_debug {
+        println!("PRINT-{} RE-COLLECTED (DEBUG): {}", kind, recollected_debug);
+    }
+    recollected
+}
+
+#[proc_macro]
+pub fn print_bang(input: TokenStream) -> TokenStream {
+    print_helper(input, "BANG")
+}
+
+#[proc_macro_attribute]
+pub fn print_attr(_: TokenStream, input: TokenStream) -> TokenStream {
+    print_helper(input, "ATTR")
+}
+
+#[proc_macro_derive(Print, attributes(print_helper))]
+pub fn print_derive(input: TokenStream) -> TokenStream {
+    print_helper(input, "DERIVE")
+}
diff --git a/src/test/ui/proc-macro/macros-in-extern.rs b/src/test/ui/abi/proc-macro/macros-in-extern.rs
index 0477b5c48ec..0477b5c48ec 100644
--- a/src/test/ui/proc-macro/macros-in-extern.rs
+++ b/src/test/ui/abi/proc-macro/macros-in-extern.rs
diff --git a/src/test/ui/proc-macro/macros-in-extern.stderr b/src/test/ui/abi/proc-macro/macros-in-extern.stderr
index 6049c2aa448..6049c2aa448 100644
--- a/src/test/ui/proc-macro/macros-in-extern.stderr
+++ b/src/test/ui/abi/proc-macro/macros-in-extern.stderr
diff --git a/src/test/ui/segfault-no-out-of-stack.rs b/src/test/ui/abi/segfault-no-out-of-stack.rs
index 626de4ed5b6..626de4ed5b6 100644
--- a/src/test/ui/segfault-no-out-of-stack.rs
+++ b/src/test/ui/abi/segfault-no-out-of-stack.rs
diff --git a/src/test/ui/stack-probes-lto.rs b/src/test/ui/abi/stack-probes-lto.rs
index 9018ff4bfc2..9018ff4bfc2 100644
--- a/src/test/ui/stack-probes-lto.rs
+++ b/src/test/ui/abi/stack-probes-lto.rs
diff --git a/src/test/ui/stack-probes.rs b/src/test/ui/abi/stack-probes.rs
index 1ab1d6df66d..1ab1d6df66d 100644
--- a/src/test/ui/stack-probes.rs
+++ b/src/test/ui/abi/stack-probes.rs
diff --git a/src/test/ui/statics/static-mut-foreign.rs b/src/test/ui/abi/statics/static-mut-foreign.rs
index 5d6fa416b98..5d6fa416b98 100644
--- a/src/test/ui/statics/static-mut-foreign.rs
+++ b/src/test/ui/abi/statics/static-mut-foreign.rs
diff --git a/src/test/ui/structs-enums/struct-return.rs b/src/test/ui/abi/struct-enums/struct-return.rs
index 5930fc4acbb..5930fc4acbb 100644
--- a/src/test/ui/structs-enums/struct-return.rs
+++ b/src/test/ui/abi/struct-enums/struct-return.rs
diff --git a/src/test/ui/union/union-c-interop.rs b/src/test/ui/abi/union/union-c-interop.rs
index 00f04d5b7ff..00f04d5b7ff 100644
--- a/src/test/ui/union/union-c-interop.rs
+++ b/src/test/ui/abi/union/union-c-interop.rs
diff --git a/src/test/ui/variadic-ffi.rs b/src/test/ui/abi/variadic-ffi.rs
index 3232a11d726..3232a11d726 100644
--- a/src/test/ui/variadic-ffi.rs
+++ b/src/test/ui/abi/variadic-ffi.rs
diff --git a/src/test/ui/async-await/suggest-switching-edition-on-await.rs b/src/test/ui/async-await/suggest-switching-edition-on-await.rs
new file mode 100644
index 00000000000..1402f1ca92b
--- /dev/null
+++ b/src/test/ui/async-await/suggest-switching-edition-on-await.rs
@@ -0,0 +1,45 @@
+use std::pin::Pin;
+use std::future::Future;
+
+fn main() {}
+
+fn await_on_struct_missing() {
+    struct S;
+    let x = S;
+    x.await;
+    //~^ ERROR no field `await` on type
+    //~| NOTE unknown field
+    //~| NOTE to `.await` a `Future`, switch to Rust 2018
+    //~| HELP set `edition = "2018"` in `Cargo.toml`
+    //~| NOTE for more on editions, read https://doc.rust-lang.org/edition-guide
+}
+
+fn await_on_struct_similar() {
+    struct S {
+        awai: u8,
+    }
+    let x = S { awai: 42 };
+    x.await;
+    //~^ ERROR no field `await` on type
+    //~| HELP a field with a similar name exists
+    //~| NOTE to `.await` a `Future`, switch to Rust 2018
+    //~| HELP set `edition = "2018"` in `Cargo.toml`
+    //~| NOTE for more on editions, read https://doc.rust-lang.org/edition-guide
+}
+
+fn await_on_63533(x: Pin<&mut dyn Future<Output = ()>>) {
+    x.await;
+    //~^ ERROR no field `await` on type
+    //~| NOTE unknown field
+    //~| NOTE to `.await` a `Future`, switch to Rust 2018
+    //~| HELP set `edition = "2018"` in `Cargo.toml`
+    //~| NOTE for more on editions, read https://doc.rust-lang.org/edition-guide
+}
+
+fn await_on_apit(x: impl Future<Output = ()>) {
+    x.await;
+    //~^ ERROR no field `await` on type
+    //~| NOTE to `.await` a `Future`, switch to Rust 2018
+    //~| HELP set `edition = "2018"` in `Cargo.toml`
+    //~| NOTE for more on editions, read https://doc.rust-lang.org/edition-guide
+}
diff --git a/src/test/ui/async-await/suggest-switching-edition-on-await.stderr b/src/test/ui/async-await/suggest-switching-edition-on-await.stderr
new file mode 100644
index 00000000000..f623511c0eb
--- /dev/null
+++ b/src/test/ui/async-await/suggest-switching-edition-on-await.stderr
@@ -0,0 +1,43 @@
+error[E0609]: no field `await` on type `await_on_struct_missing::S`
+  --> $DIR/suggest-switching-edition-on-await.rs:9:7
+   |
+LL |     x.await;
+   |       ^^^^^ unknown field
+   |
+   = note: to `.await` a `Future`, switch to Rust 2018
+   = help: set `edition = "2018"` in `Cargo.toml`
+   = note: for more on editions, read https://doc.rust-lang.org/edition-guide
+
+error[E0609]: no field `await` on type `await_on_struct_similar::S`
+  --> $DIR/suggest-switching-edition-on-await.rs:22:7
+   |
+LL |     x.await;
+   |       ^^^^^ help: a field with a similar name exists: `awai`
+   |
+   = note: to `.await` a `Future`, switch to Rust 2018
+   = help: set `edition = "2018"` in `Cargo.toml`
+   = note: for more on editions, read https://doc.rust-lang.org/edition-guide
+
+error[E0609]: no field `await` on type `std::pin::Pin<&mut dyn std::future::Future<Output = ()>>`
+  --> $DIR/suggest-switching-edition-on-await.rs:31:7
+   |
+LL |     x.await;
+   |       ^^^^^ unknown field
+   |
+   = note: to `.await` a `Future`, switch to Rust 2018
+   = help: set `edition = "2018"` in `Cargo.toml`
+   = note: for more on editions, read https://doc.rust-lang.org/edition-guide
+
+error[E0609]: no field `await` on type `impl Future<Output = ()>`
+  --> $DIR/suggest-switching-edition-on-await.rs:40:7
+   |
+LL |     x.await;
+   |       ^^^^^
+   |
+   = note: to `.await` a `Future`, switch to Rust 2018
+   = help: set `edition = "2018"` in `Cargo.toml`
+   = note: for more on editions, read https://doc.rust-lang.org/edition-guide
+
+error: aborting due to 4 previous errors
+
+For more information about this error, try `rustc --explain E0609`.
diff --git a/src/test/ui/feature-gates/feature-gate-rustc-diagnostic-macros.stderr b/src/test/ui/feature-gates/feature-gate-rustc-diagnostic-macros.stderr
index 478bc09f291..676b8b9f056 100644
--- a/src/test/ui/feature-gates/feature-gate-rustc-diagnostic-macros.stderr
+++ b/src/test/ui/feature-gates/feature-gate-rustc-diagnostic-macros.stderr
@@ -4,17 +4,17 @@ error: cannot find macro `__build_diagnostic_array!` in this scope
 LL | __build_diagnostic_array!(DIAGNOSTICS);
    | ^^^^^^^^^^^^^^^^^^^^^^^^
 
-error: cannot find macro `__register_diagnostic!` in this scope
-  --> $DIR/feature-gate-rustc-diagnostic-macros.rs:4:1
-   |
-LL | __register_diagnostic!(E0001);
-   | ^^^^^^^^^^^^^^^^^^^^^
-
 error: cannot find macro `__diagnostic_used!` in this scope
   --> $DIR/feature-gate-rustc-diagnostic-macros.rs:8:5
    |
 LL |     __diagnostic_used!(E0001);
    |     ^^^^^^^^^^^^^^^^^
 
+error: cannot find macro `__register_diagnostic!` in this scope
+  --> $DIR/feature-gate-rustc-diagnostic-macros.rs:4:1
+   |
+LL | __register_diagnostic!(E0001);
+   | ^^^^^^^^^^^^^^^^^^^^^
+
 error: aborting due to 3 previous errors
 
diff --git a/src/test/ui/hygiene/no_implicit_prelude.stderr b/src/test/ui/hygiene/no_implicit_prelude.stderr
index a89176fe690..643f803f620 100644
--- a/src/test/ui/hygiene/no_implicit_prelude.stderr
+++ b/src/test/ui/hygiene/no_implicit_prelude.stderr
@@ -1,3 +1,11 @@
+error: cannot find macro `panic!` in this scope
+  --> $DIR/no_implicit_prelude.rs:16:9
+   |
+LL |         assert_eq!(0, 0);
+   |         ^^^^^^^^^^^^^^^^^
+   |
+   = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
+
 error[E0433]: failed to resolve: use of undeclared type or module `Vec`
   --> $DIR/no_implicit_prelude.rs:11:9
    |
@@ -7,14 +15,6 @@ LL |     fn f() { ::bar::m!(); }
 LL |         Vec::new();
    |         ^^^ use of undeclared type or module `Vec`
 
-error: cannot find macro `panic!` in this scope
-  --> $DIR/no_implicit_prelude.rs:16:9
-   |
-LL |         assert_eq!(0, 0);
-   |         ^^^^^^^^^^^^^^^^^
-   |
-   = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
-
 error[E0599]: no method named `clone` found for type `()` in the current scope
   --> $DIR/no_implicit_prelude.rs:12:12
    |
diff --git a/src/test/ui/imports/local-modularized-tricky-fail-1.stderr b/src/test/ui/imports/local-modularized-tricky-fail-1.stderr
index 5afdd8889ae..7d013828bd9 100644
--- a/src/test/ui/imports/local-modularized-tricky-fail-1.stderr
+++ b/src/test/ui/imports/local-modularized-tricky-fail-1.stderr
@@ -21,25 +21,6 @@ LL | use inner1::*;
    |     ^^^^^^^^^
    = help: consider adding an explicit import of `exported` to disambiguate
 
-error[E0659]: `include` is ambiguous (macro-expanded name vs less macro-expanded name from outer scope during import/macro resolution)
-  --> $DIR/local-modularized-tricky-fail-1.rs:46:1
-   |
-LL | include!();
-   | ^^^^^^^ ambiguous name
-   |
-   = note: `include` could refer to a macro from prelude
-note: `include` could also refer to the macro defined here
-  --> $DIR/local-modularized-tricky-fail-1.rs:17:5
-   |
-LL | /     macro_rules! include {
-LL | |         () => ()
-LL | |     }
-   | |_____^
-...
-LL |       define_include!();
-   |       ------------------ in this macro invocation
-   = help: use `crate::include` to refer to this macro unambiguously
-
 error[E0659]: `panic` is ambiguous (macro-expanded name vs less macro-expanded name from outer scope during import/macro resolution)
   --> $DIR/local-modularized-tricky-fail-1.rs:35:5
    |
@@ -59,6 +40,25 @@ LL |       define_panic!();
    |       ---------------- in this macro invocation
    = help: use `crate::panic` to refer to this macro unambiguously
 
+error[E0659]: `include` is ambiguous (macro-expanded name vs less macro-expanded name from outer scope during import/macro resolution)
+  --> $DIR/local-modularized-tricky-fail-1.rs:46:1
+   |
+LL | include!();
+   | ^^^^^^^ ambiguous name
+   |
+   = note: `include` could refer to a macro from prelude
+note: `include` could also refer to the macro defined here
+  --> $DIR/local-modularized-tricky-fail-1.rs:17:5
+   |
+LL | /     macro_rules! include {
+LL | |         () => ()
+LL | |     }
+   | |_____^
+...
+LL |       define_include!();
+   |       ------------------ in this macro invocation
+   = help: use `crate::include` to refer to this macro unambiguously
+
 error: aborting due to 3 previous errors
 
 For more information about this error, try `rustc --explain E0659`.
diff --git a/src/test/ui/imports/shadow_builtin_macros.stderr b/src/test/ui/imports/shadow_builtin_macros.stderr
index c84226ef313..2f2ab20cdf0 100644
--- a/src/test/ui/imports/shadow_builtin_macros.stderr
+++ b/src/test/ui/imports/shadow_builtin_macros.stderr
@@ -14,20 +14,6 @@ LL |     use foo::*;
    = help: or use `self::panic` to refer to this macro unambiguously
 
 error[E0659]: `panic` is ambiguous (macro-expanded name vs less macro-expanded name from outer scope during import/macro resolution)
-  --> $DIR/shadow_builtin_macros.rs:20:14
-   |
-LL |     fn f() { panic!(); }
-   |              ^^^^^ ambiguous name
-   |
-   = note: `panic` could refer to a macro from prelude
-note: `panic` could also refer to the macro imported here
-  --> $DIR/shadow_builtin_macros.rs:19:26
-   |
-LL |     ::two_macros::m!(use foo::panic;);
-   |                          ^^^^^^^^^^
-   = help: use `self::panic` to refer to this macro unambiguously
-
-error[E0659]: `panic` is ambiguous (macro-expanded name vs less macro-expanded name from outer scope during import/macro resolution)
   --> $DIR/shadow_builtin_macros.rs:33:5
    |
 LL |     panic!();
@@ -62,6 +48,20 @@ note: `n` could also refer to the macro imported here
 LL | #[macro_use(n)]
    |             ^
 
+error[E0659]: `panic` is ambiguous (macro-expanded name vs less macro-expanded name from outer scope during import/macro resolution)
+  --> $DIR/shadow_builtin_macros.rs:20:14
+   |
+LL |     fn f() { panic!(); }
+   |              ^^^^^ ambiguous name
+   |
+   = note: `panic` could refer to a macro from prelude
+note: `panic` could also refer to the macro imported here
+  --> $DIR/shadow_builtin_macros.rs:19:26
+   |
+LL |     ::two_macros::m!(use foo::panic;);
+   |                          ^^^^^^^^^^
+   = help: use `self::panic` to refer to this macro unambiguously
+
 error: aborting due to 4 previous errors
 
 For more information about this error, try `rustc --explain E0659`.
diff --git a/src/test/ui/issues/issue-49074.stderr b/src/test/ui/issues/issue-49074.stderr
index c557255ab50..e0d3bb3ecc2 100644
--- a/src/test/ui/issues/issue-49074.stderr
+++ b/src/test/ui/issues/issue-49074.stderr
@@ -1,9 +1,3 @@
-error: cannot find attribute macro `marco_use` in this scope
-  --> $DIR/issue-49074.rs:3:3
-   |
-LL | #[marco_use] // typo
-   |   ^^^^^^^^^ help: a built-in attribute with a similar name exists: `macro_use`
-
 error: cannot find macro `bar!` in this scope
   --> $DIR/issue-49074.rs:12:4
    |
@@ -12,5 +6,11 @@ LL |    bar!();
    |
    = help: have you added the `#[macro_use]` on the module/import?
 
+error: cannot find attribute macro `marco_use` in this scope
+  --> $DIR/issue-49074.rs:3:3
+   |
+LL | #[marco_use] // typo
+   |   ^^^^^^^^^ help: a built-in attribute with a similar name exists: `macro_use`
+
 error: aborting due to 2 previous errors
 
diff --git a/src/test/ui/proc-macro/macro-namespace-reserved-2.stderr b/src/test/ui/proc-macro/macro-namespace-reserved-2.stderr
index b2f12478828..0c863e91967 100644
--- a/src/test/ui/proc-macro/macro-namespace-reserved-2.stderr
+++ b/src/test/ui/proc-macro/macro-namespace-reserved-2.stderr
@@ -88,18 +88,6 @@ error: expected derive macro, found macro `crate::my_macro`
 LL | #[derive(crate::my_macro)]
    |          ^^^^^^^^^^^^^^^ not a derive macro
 
-error: cannot find attribute macro `my_macro` in this scope
-  --> $DIR/macro-namespace-reserved-2.rs:38:3
-   |
-LL | #[my_macro]
-   |   ^^^^^^^^
-
-error: cannot find derive macro `my_macro` in this scope
-  --> $DIR/macro-namespace-reserved-2.rs:48:10
-   |
-LL | #[derive(my_macro)]
-   |          ^^^^^^^^
-
 error: cannot find macro `my_macro_attr!` in this scope
   --> $DIR/macro-namespace-reserved-2.rs:28:5
    |
@@ -112,5 +100,17 @@ error: cannot find macro `MyTrait!` in this scope
 LL |     MyTrait!();
    |     ^^^^^^^
 
+error: cannot find attribute macro `my_macro` in this scope
+  --> $DIR/macro-namespace-reserved-2.rs:38:3
+   |
+LL | #[my_macro]
+   |   ^^^^^^^^
+
+error: cannot find derive macro `my_macro` in this scope
+  --> $DIR/macro-namespace-reserved-2.rs:48:10
+   |
+LL | #[derive(my_macro)]
+   |          ^^^^^^^^
+
 error: aborting due to 19 previous errors
 
diff --git a/src/test/ui/reserved/reserved-attr-on-macro.stderr b/src/test/ui/reserved/reserved-attr-on-macro.stderr
index d4b97d290ea..856162b318d 100644
--- a/src/test/ui/reserved/reserved-attr-on-macro.stderr
+++ b/src/test/ui/reserved/reserved-attr-on-macro.stderr
@@ -7,12 +7,6 @@ LL | #[rustc_attribute_should_be_reserved]
    = note: for more information, see https://github.com/rust-lang/rust/issues/29642
    = help: add `#![feature(rustc_attrs)]` to the crate attributes to enable
 
-error: cannot find attribute macro `rustc_attribute_should_be_reserved` in this scope
-  --> $DIR/reserved-attr-on-macro.rs:1:3
-   |
-LL | #[rustc_attribute_should_be_reserved]
-   |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
 error: cannot determine resolution for the macro `foo`
   --> $DIR/reserved-attr-on-macro.rs:10:5
    |
@@ -21,6 +15,12 @@ LL |     foo!();
    |
    = note: import resolution is stuck, try simplifying macro imports
 
+error: cannot find attribute macro `rustc_attribute_should_be_reserved` in this scope
+  --> $DIR/reserved-attr-on-macro.rs:1:3
+   |
+LL | #[rustc_attribute_should_be_reserved]
+   |   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
 error: aborting due to 3 previous errors
 
 For more information about this error, try `rustc --explain E0658`.
diff --git a/src/test/ui/suggestions/dont-suggest-try_into-in-macros.rs b/src/test/ui/suggestions/dont-suggest-try_into-in-macros.rs
new file mode 100644
index 00000000000..d625199c937
--- /dev/null
+++ b/src/test/ui/suggestions/dont-suggest-try_into-in-macros.rs
@@ -0,0 +1,3 @@
+fn main() {
+    assert_eq!(10u64, 10usize); //~ ERROR mismatched types
+}
diff --git a/src/test/ui/suggestions/dont-suggest-try_into-in-macros.stderr b/src/test/ui/suggestions/dont-suggest-try_into-in-macros.stderr
new file mode 100644
index 00000000000..f04306997a9
--- /dev/null
+++ b/src/test/ui/suggestions/dont-suggest-try_into-in-macros.stderr
@@ -0,0 +1,11 @@
+error[E0308]: mismatched types
+  --> $DIR/dont-suggest-try_into-in-macros.rs:2:5
+   |
+LL |     assert_eq!(10u64, 10usize);
+   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected u64, found usize
+   |
+   = note: this error originates in a macro outside of the current crate (in Nightly builds, run with -Z external-macro-backtrace for more info)
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0308`.