summaryrefslogtreecommitdiffstats
path: root/tests/ui/feature-gates
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/feature-gates')
-rw-r--r--tests/ui/feature-gates/auxiliary/debugger-visualizer.natvis3
-rw-r--r--tests/ui/feature-gates/feature-gate-builtin_syntax.rs7
-rw-r--r--tests/ui/feature-gates/feature-gate-builtin_syntax.stderr12
-rw-r--r--tests/ui/feature-gates/feature-gate-cfg_overflow_checks.rs6
-rw-r--r--tests/ui/feature-gates/feature-gate-cfg_overflow_checks.stderr12
-rw-r--r--tests/ui/feature-gates/feature-gate-cfi_encoding.rs4
-rw-r--r--tests/ui/feature-gates/feature-gate-cfi_encoding.stderr12
-rw-r--r--tests/ui/feature-gates/feature-gate-debugger-visualizer.rs3
-rw-r--r--tests/ui/feature-gates/feature-gate-debugger-visualizer.stderr12
-rw-r--r--tests/ui/feature-gates/feature-gate-dispatch-from-dyn-missing-impl.stderr9
-rw-r--r--tests/ui/feature-gates/feature-gate-negative_bounds.rs4
-rw-r--r--tests/ui/feature-gates/feature-gate-negative_bounds.stderr8
-rw-r--r--tests/ui/feature-gates/feature-gate-raw-dylib-2.rs12
-rw-r--r--tests/ui/feature-gates/feature-gate-raw-dylib-2.stderr21
-rw-r--r--tests/ui/feature-gates/feature-gate-raw-dylib-import-name-type.rs8
-rw-r--r--tests/ui/feature-gates/feature-gate-raw-dylib-import-name-type.stderr21
-rw-r--r--tests/ui/feature-gates/feature-gate-raw-dylib.rs7
-rw-r--r--tests/ui/feature-gates/feature-gate-raw-dylib.stderr12
-rw-r--r--tests/ui/feature-gates/feature-gate-return_type_notation.cfg.stderr17
-rw-r--r--tests/ui/feature-gates/feature-gate-return_type_notation.no.stderr13
-rw-r--r--tests/ui/feature-gates/feature-gate-return_type_notation.rs1
-rw-r--r--tests/ui/feature-gates/feature-gate-thiscall.rs38
-rw-r--r--tests/ui/feature-gates/feature-gate-thiscall.stderr115
-rw-r--r--tests/ui/feature-gates/feature-gate-type_ascription.rs2
-rw-r--r--tests/ui/feature-gates/feature-gate-type_ascription.stderr6
-rw-r--r--tests/ui/feature-gates/feature-gate-unsafe_pin_internals.rs1
-rw-r--r--tests/ui/feature-gates/feature-gate-vectorcall.rs4
27 files changed, 231 insertions, 139 deletions
diff --git a/tests/ui/feature-gates/auxiliary/debugger-visualizer.natvis b/tests/ui/feature-gates/auxiliary/debugger-visualizer.natvis
deleted file mode 100644
index 6eb47e3d8..000000000
--- a/tests/ui/feature-gates/auxiliary/debugger-visualizer.natvis
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<AutoVisualizer xmlns="http://schemas.microsoft.com/vstudio/debugger/natvis/2010">
-</AutoVisualizer>
diff --git a/tests/ui/feature-gates/feature-gate-builtin_syntax.rs b/tests/ui/feature-gates/feature-gate-builtin_syntax.rs
new file mode 100644
index 000000000..832bb5a96
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-builtin_syntax.rs
@@ -0,0 +1,7 @@
+struct Foo {
+ v: u8,
+ w: u8,
+}
+fn main() {
+ builtin # offset_of(Foo, v); //~ ERROR `builtin #` syntax is unstable
+}
diff --git a/tests/ui/feature-gates/feature-gate-builtin_syntax.stderr b/tests/ui/feature-gates/feature-gate-builtin_syntax.stderr
new file mode 100644
index 000000000..3bc7848f6
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-builtin_syntax.stderr
@@ -0,0 +1,12 @@
+error[E0658]: `builtin #` syntax is unstable
+ --> $DIR/feature-gate-builtin_syntax.rs:6:15
+ |
+LL | builtin # offset_of(Foo, v);
+ | ^^^^^^^^^
+ |
+ = note: see issue #110680 <https://github.com/rust-lang/rust/issues/110680> for more information
+ = help: add `#![feature(builtin_syntax)]` to the crate attributes to enable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/tests/ui/feature-gates/feature-gate-cfg_overflow_checks.rs b/tests/ui/feature-gates/feature-gate-cfg_overflow_checks.rs
new file mode 100644
index 000000000..cb265aa7f
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-cfg_overflow_checks.rs
@@ -0,0 +1,6 @@
+#![crate_type = "lib"]
+
+#[cfg(overflow_checks)] //~ ERROR `cfg(overflow_checks)` is experimental
+pub fn cast(v: i64)->u32{
+ todo!()
+}
diff --git a/tests/ui/feature-gates/feature-gate-cfg_overflow_checks.stderr b/tests/ui/feature-gates/feature-gate-cfg_overflow_checks.stderr
new file mode 100644
index 000000000..79aba7945
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-cfg_overflow_checks.stderr
@@ -0,0 +1,12 @@
+error[E0658]: `cfg(overflow_checks)` is experimental and subject to change
+ --> $DIR/feature-gate-cfg_overflow_checks.rs:3:7
+ |
+LL | #[cfg(overflow_checks)]
+ | ^^^^^^^^^^^^^^^
+ |
+ = note: see issue #111466 <https://github.com/rust-lang/rust/issues/111466> for more information
+ = help: add `#![feature(cfg_overflow_checks)]` to the crate attributes to enable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/tests/ui/feature-gates/feature-gate-cfi_encoding.rs b/tests/ui/feature-gates/feature-gate-cfi_encoding.rs
new file mode 100644
index 000000000..3cef81560
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-cfi_encoding.rs
@@ -0,0 +1,4 @@
+#![crate_type = "lib"]
+
+#[cfi_encoding = "3Bar"] //~ERROR 3:1: 3:25: the `#[cfi_encoding]` attribute is an experimental feature [E0658]
+pub struct Foo(i32);
diff --git a/tests/ui/feature-gates/feature-gate-cfi_encoding.stderr b/tests/ui/feature-gates/feature-gate-cfi_encoding.stderr
new file mode 100644
index 000000000..b10a15088
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-cfi_encoding.stderr
@@ -0,0 +1,12 @@
+error[E0658]: the `#[cfi_encoding]` attribute is an experimental feature
+ --> $DIR/feature-gate-cfi_encoding.rs:3:1
+ |
+LL | #[cfi_encoding = "3Bar"]
+ | ^^^^^^^^^^^^^^^^^^^^^^^^
+ |
+ = note: see issue #89653 <https://github.com/rust-lang/rust/issues/89653> for more information
+ = help: add `#![feature(cfi_encoding)]` to the crate attributes to enable
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/tests/ui/feature-gates/feature-gate-debugger-visualizer.rs b/tests/ui/feature-gates/feature-gate-debugger-visualizer.rs
deleted file mode 100644
index 4c4dc450d..000000000
--- a/tests/ui/feature-gates/feature-gate-debugger-visualizer.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-#![debugger_visualizer(natvis_file = "auxiliary/debugger-visualizer.natvis")] //~ ERROR the `#[debugger_visualizer]` attribute is an experimental feature
-
-fn main() {}
diff --git a/tests/ui/feature-gates/feature-gate-debugger-visualizer.stderr b/tests/ui/feature-gates/feature-gate-debugger-visualizer.stderr
deleted file mode 100644
index e9367fbc6..000000000
--- a/tests/ui/feature-gates/feature-gate-debugger-visualizer.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0658]: the `#[debugger_visualizer]` attribute is an experimental feature
- --> $DIR/feature-gate-debugger-visualizer.rs:1:1
- |
-LL | #![debugger_visualizer(natvis_file = "auxiliary/debugger-visualizer.natvis")]
- | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- |
- = note: see issue #95939 <https://github.com/rust-lang/rust/issues/95939> for more information
- = help: add `#![feature(debugger_visualizer)]` to the crate attributes to enable
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0658`.
diff --git a/tests/ui/feature-gates/feature-gate-dispatch-from-dyn-missing-impl.stderr b/tests/ui/feature-gates/feature-gate-dispatch-from-dyn-missing-impl.stderr
index d81eade8e..303700c7a 100644
--- a/tests/ui/feature-gates/feature-gate-dispatch-from-dyn-missing-impl.stderr
+++ b/tests/ui/feature-gates/feature-gate-dispatch-from-dyn-missing-impl.stderr
@@ -31,14 +31,7 @@ LL | trait Trait {
| ----- this trait cannot be made into an object...
LL | fn ptr(self: Ptr<Self>);
| ^^^^^^^^^ ...because method `ptr`'s `self` parameter cannot be dispatched on
-note: required for `Ptr<{integer}>` to implement `CoerceUnsized<Ptr<dyn Trait>>`
- --> $DIR/feature-gate-dispatch-from-dyn-missing-impl.rs:20:40
- |
-LL | impl<T: Unsize<U> + ?Sized, U: ?Sized> CoerceUnsized<Ptr<U>> for Ptr<T> {}
- | --------- ^^^^^^^^^^^^^^^^^^^^^ ^^^^^^
- | |
- | unsatisfied trait bound introduced here
- = note: required by cast to type `Ptr<dyn Trait>`
+ = note: required for the cast from `Ptr<{integer}>` to `Ptr<dyn Trait>`
error: aborting due to 2 previous errors
diff --git a/tests/ui/feature-gates/feature-gate-negative_bounds.rs b/tests/ui/feature-gates/feature-gate-negative_bounds.rs
new file mode 100644
index 000000000..533cb0ce5
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-negative_bounds.rs
@@ -0,0 +1,4 @@
+fn test<T: !Copy>() {}
+//~^ ERROR negative bounds are not supported
+
+fn main() {}
diff --git a/tests/ui/feature-gates/feature-gate-negative_bounds.stderr b/tests/ui/feature-gates/feature-gate-negative_bounds.stderr
new file mode 100644
index 000000000..ae010fdf3
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-negative_bounds.stderr
@@ -0,0 +1,8 @@
+error: negative bounds are not supported
+ --> $DIR/feature-gate-negative_bounds.rs:1:12
+ |
+LL | fn test<T: !Copy>() {}
+ | ^
+
+error: aborting due to previous error
+
diff --git a/tests/ui/feature-gates/feature-gate-raw-dylib-2.rs b/tests/ui/feature-gates/feature-gate-raw-dylib-2.rs
deleted file mode 100644
index fc47a9061..000000000
--- a/tests/ui/feature-gates/feature-gate-raw-dylib-2.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-// only-x86
-#[link(name = "foo")]
-extern "C" {
- #[link_ordinal(42)]
- //~^ ERROR: `#[link_ordinal]` is unstable on x86
- fn foo();
- #[link_ordinal(5)]
- //~^ ERROR: `#[link_ordinal]` is unstable on x86
- static mut imported_variable: i32;
-}
-
-fn main() {}
diff --git a/tests/ui/feature-gates/feature-gate-raw-dylib-2.stderr b/tests/ui/feature-gates/feature-gate-raw-dylib-2.stderr
deleted file mode 100644
index 0e900760d..000000000
--- a/tests/ui/feature-gates/feature-gate-raw-dylib-2.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-error[E0658]: `#[link_ordinal]` is unstable on x86
- --> $DIR/feature-gate-raw-dylib-2.rs:4:5
- |
-LL | #[link_ordinal(42)]
- | ^^^^^^^^^^^^^^^^^^^
- |
- = note: see issue #58713 <https://github.com/rust-lang/rust/issues/58713> for more information
- = help: add `#![feature(raw_dylib)]` to the crate attributes to enable
-
-error[E0658]: `#[link_ordinal]` is unstable on x86
- --> $DIR/feature-gate-raw-dylib-2.rs:7:5
- |
-LL | #[link_ordinal(5)]
- | ^^^^^^^^^^^^^^^^^^
- |
- = note: see issue #58713 <https://github.com/rust-lang/rust/issues/58713> for more information
- = help: add `#![feature(raw_dylib)]` 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/tests/ui/feature-gates/feature-gate-raw-dylib-import-name-type.rs b/tests/ui/feature-gates/feature-gate-raw-dylib-import-name-type.rs
deleted file mode 100644
index 295f502d6..000000000
--- a/tests/ui/feature-gates/feature-gate-raw-dylib-import-name-type.rs
+++ /dev/null
@@ -1,8 +0,0 @@
-// only-windows
-// only-x86
-#[link(name = "foo", kind = "raw-dylib", import_name_type = "decorated")]
-//~^ ERROR link kind `raw-dylib` is unstable on x86
-//~| ERROR import name type is unstable
-extern "C" {}
-
-fn main() {}
diff --git a/tests/ui/feature-gates/feature-gate-raw-dylib-import-name-type.stderr b/tests/ui/feature-gates/feature-gate-raw-dylib-import-name-type.stderr
deleted file mode 100644
index d6b165b76..000000000
--- a/tests/ui/feature-gates/feature-gate-raw-dylib-import-name-type.stderr
+++ /dev/null
@@ -1,21 +0,0 @@
-error[E0658]: link kind `raw-dylib` is unstable on x86
- --> $DIR/feature-gate-raw-dylib-import-name-type.rs:3:29
- |
-LL | #[link(name = "foo", kind = "raw-dylib", import_name_type = "decorated")]
- | ^^^^^^^^^^^
- |
- = note: see issue #58713 <https://github.com/rust-lang/rust/issues/58713> for more information
- = help: add `#![feature(raw_dylib)]` to the crate attributes to enable
-
-error[E0658]: import name type is unstable
- --> $DIR/feature-gate-raw-dylib-import-name-type.rs:3:61
- |
-LL | #[link(name = "foo", kind = "raw-dylib", import_name_type = "decorated")]
- | ^^^^^^^^^^^
- |
- = note: see issue #58713 <https://github.com/rust-lang/rust/issues/58713> for more information
- = help: add `#![feature(raw_dylib)]` 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/tests/ui/feature-gates/feature-gate-raw-dylib.rs b/tests/ui/feature-gates/feature-gate-raw-dylib.rs
deleted file mode 100644
index 291cca8fd..000000000
--- a/tests/ui/feature-gates/feature-gate-raw-dylib.rs
+++ /dev/null
@@ -1,7 +0,0 @@
-// only-windows
-// only-x86
-#[link(name = "foo", kind = "raw-dylib")]
-//~^ ERROR: link kind `raw-dylib` is unstable on x86
-extern "C" {}
-
-fn main() {}
diff --git a/tests/ui/feature-gates/feature-gate-raw-dylib.stderr b/tests/ui/feature-gates/feature-gate-raw-dylib.stderr
deleted file mode 100644
index f02241e49..000000000
--- a/tests/ui/feature-gates/feature-gate-raw-dylib.stderr
+++ /dev/null
@@ -1,12 +0,0 @@
-error[E0658]: link kind `raw-dylib` is unstable on x86
- --> $DIR/feature-gate-raw-dylib.rs:3:29
- |
-LL | #[link(name = "foo", kind = "raw-dylib")]
- | ^^^^^^^^^^^
- |
- = note: see issue #58713 <https://github.com/rust-lang/rust/issues/58713> for more information
- = help: add `#![feature(raw_dylib)]` to the crate attributes to enable
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0658`.
diff --git a/tests/ui/feature-gates/feature-gate-return_type_notation.cfg.stderr b/tests/ui/feature-gates/feature-gate-return_type_notation.cfg.stderr
index c3a371e25..1bdb2574e 100644
--- a/tests/ui/feature-gates/feature-gate-return_type_notation.cfg.stderr
+++ b/tests/ui/feature-gates/feature-gate-return_type_notation.cfg.stderr
@@ -1,5 +1,5 @@
error[E0658]: return type notation is experimental
- --> $DIR/feature-gate-return_type_notation.rs:15:17
+ --> $DIR/feature-gate-return_type_notation.rs:14:17
|
LL | fn foo<T: Trait<m(): Send>>() {}
| ^^^^^^^^^
@@ -7,17 +7,8 @@ LL | fn foo<T: Trait<m(): Send>>() {}
= note: see issue #109417 <https://github.com/rust-lang/rust/issues/109417> for more information
= help: add `#![feature(return_type_notation)]` to the crate attributes to enable
-warning: the feature `async_fn_in_trait` is incomplete and may not be safe to use and/or cause compiler crashes
- --> $DIR/feature-gate-return_type_notation.rs:7:12
- |
-LL | #![feature(async_fn_in_trait)]
- | ^^^^^^^^^^^^^^^^^
- |
- = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
- = note: `#[warn(incomplete_features)]` on by default
-
error: parenthesized generic arguments cannot be used in associated type constraints
- --> $DIR/feature-gate-return_type_notation.rs:15:17
+ --> $DIR/feature-gate-return_type_notation.rs:14:17
|
LL | fn foo<T: Trait<m(): Send>>() {}
| ^--
@@ -25,12 +16,12 @@ LL | fn foo<T: Trait<m(): Send>>() {}
| help: remove these parentheses
error[E0220]: associated type `m` not found for `Trait`
- --> $DIR/feature-gate-return_type_notation.rs:15:17
+ --> $DIR/feature-gate-return_type_notation.rs:14:17
|
LL | fn foo<T: Trait<m(): Send>>() {}
| ^ associated type `m` not found
-error: aborting due to 3 previous errors; 1 warning emitted
+error: aborting due to 3 previous errors
Some errors have detailed explanations: E0220, E0658.
For more information about an error, try `rustc --explain E0220`.
diff --git a/tests/ui/feature-gates/feature-gate-return_type_notation.no.stderr b/tests/ui/feature-gates/feature-gate-return_type_notation.no.stderr
index 52c90c156..dd6ebb610 100644
--- a/tests/ui/feature-gates/feature-gate-return_type_notation.no.stderr
+++ b/tests/ui/feature-gates/feature-gate-return_type_notation.no.stderr
@@ -1,14 +1,5 @@
-warning: the feature `async_fn_in_trait` is incomplete and may not be safe to use and/or cause compiler crashes
- --> $DIR/feature-gate-return_type_notation.rs:7:12
- |
-LL | #![feature(async_fn_in_trait)]
- | ^^^^^^^^^^^^^^^^^
- |
- = note: see issue #91611 <https://github.com/rust-lang/rust/issues/91611> for more information
- = note: `#[warn(incomplete_features)]` on by default
-
warning: return type notation is experimental
- --> $DIR/feature-gate-return_type_notation.rs:15:17
+ --> $DIR/feature-gate-return_type_notation.rs:14:17
|
LL | fn foo<T: Trait<m(): Send>>() {}
| ^^^^^^^^^
@@ -18,5 +9,5 @@ LL | fn foo<T: Trait<m(): Send>>() {}
= warning: unstable syntax can change at any point in the future, causing a hard error!
= note: for more information, see issue #65860 <https://github.com/rust-lang/rust/issues/65860>
-warning: 2 warnings emitted
+warning: 1 warning emitted
diff --git a/tests/ui/feature-gates/feature-gate-return_type_notation.rs b/tests/ui/feature-gates/feature-gate-return_type_notation.rs
index 5028b9ec9..d9bcb65fe 100644
--- a/tests/ui/feature-gates/feature-gate-return_type_notation.rs
+++ b/tests/ui/feature-gates/feature-gate-return_type_notation.rs
@@ -5,7 +5,6 @@
// Since we're not adding new syntax, `cfg`'d out RTN must pass.
#![feature(async_fn_in_trait)]
-//~^ WARN the feature `async_fn_in_trait` is incomplete
trait Trait {
async fn m();
diff --git a/tests/ui/feature-gates/feature-gate-thiscall.rs b/tests/ui/feature-gates/feature-gate-thiscall.rs
new file mode 100644
index 000000000..97a732bcf
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-thiscall.rs
@@ -0,0 +1,38 @@
+// gate-test-abi_thiscall
+// needs-llvm-components: x86
+// compile-flags: --target=i686-pc-windows-msvc --crate-type=rlib
+#![no_core]
+#![feature(no_core, lang_items)]
+#[lang="sized"]
+trait Sized { }
+
+// Test that the "thiscall" ABI is feature-gated, and cannot be used when
+// the `abi_thiscall` feature gate is not used.
+
+extern "thiscall-unwind" fn fu() {} //~ ERROR thiscall-unwind ABI is experimental
+extern "thiscall" fn f() {} //~ ERROR thiscall is experimental
+
+trait T {
+ extern "thiscall" fn m(); //~ ERROR thiscall is experimental
+ extern "thiscall-unwind" fn mu(); //~ ERROR thiscall-unwind ABI is experimental
+
+ extern "thiscall" fn dm() {} //~ ERROR thiscall is experimental
+ extern "thiscall-unwind" fn dmu() {} //~ ERROR thiscall-unwind ABI is experimental
+}
+
+struct S;
+impl T for S {
+ extern "thiscall" fn m() {} //~ ERROR thiscall is experimental
+ extern "thiscall-unwind" fn mu() {} //~ ERROR thiscall-unwind ABI is experimental
+}
+
+impl S {
+ extern "thiscall" fn im() {} //~ ERROR thiscall is experimental
+ extern "thiscall-unwind" fn imu() {} //~ ERROR thiscall-unwind ABI is experimental
+}
+
+type TA = extern "thiscall" fn(); //~ ERROR thiscall is experimental
+type TAU = extern "thiscall-unwind" fn(); //~ ERROR thiscall-unwind ABI is experimental
+
+extern "thiscall" {} //~ ERROR thiscall is experimental
+extern "thiscall-unwind" {} //~ ERROR thiscall-unwind ABI is experimental
diff --git a/tests/ui/feature-gates/feature-gate-thiscall.stderr b/tests/ui/feature-gates/feature-gate-thiscall.stderr
new file mode 100644
index 000000000..346e45952
--- /dev/null
+++ b/tests/ui/feature-gates/feature-gate-thiscall.stderr
@@ -0,0 +1,115 @@
+error[E0658]: thiscall-unwind ABI is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:12:8
+ |
+LL | extern "thiscall-unwind" fn fu() {}
+ | ^^^^^^^^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:13:8
+ |
+LL | extern "thiscall" fn f() {}
+ | ^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:16:12
+ |
+LL | extern "thiscall" fn m();
+ | ^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall-unwind ABI is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:17:12
+ |
+LL | extern "thiscall-unwind" fn mu();
+ | ^^^^^^^^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:19:12
+ |
+LL | extern "thiscall" fn dm() {}
+ | ^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall-unwind ABI is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:20:12
+ |
+LL | extern "thiscall-unwind" fn dmu() {}
+ | ^^^^^^^^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:25:12
+ |
+LL | extern "thiscall" fn m() {}
+ | ^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall-unwind ABI is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:26:12
+ |
+LL | extern "thiscall-unwind" fn mu() {}
+ | ^^^^^^^^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:30:12
+ |
+LL | extern "thiscall" fn im() {}
+ | ^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall-unwind ABI is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:31:12
+ |
+LL | extern "thiscall-unwind" fn imu() {}
+ | ^^^^^^^^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:34:18
+ |
+LL | type TA = extern "thiscall" fn();
+ | ^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall-unwind ABI is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:35:19
+ |
+LL | type TAU = extern "thiscall-unwind" fn();
+ | ^^^^^^^^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:37:8
+ |
+LL | extern "thiscall" {}
+ | ^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error[E0658]: thiscall-unwind ABI is experimental and subject to change
+ --> $DIR/feature-gate-thiscall.rs:38:8
+ |
+LL | extern "thiscall-unwind" {}
+ | ^^^^^^^^^^^^^^^^^
+ |
+ = help: add `#![feature(abi_thiscall)]` to the crate attributes to enable
+
+error: aborting due to 14 previous errors
+
+For more information about this error, try `rustc --explain E0658`.
diff --git a/tests/ui/feature-gates/feature-gate-type_ascription.rs b/tests/ui/feature-gates/feature-gate-type_ascription.rs
index 7a5971573..5c3f0e37d 100644
--- a/tests/ui/feature-gates/feature-gate-type_ascription.rs
+++ b/tests/ui/feature-gates/feature-gate-type_ascription.rs
@@ -1,5 +1,5 @@
// Type ascription is unstable
fn main() {
- let a = 10: u8; //~ ERROR type ascription is experimental
+ let a = type_ascribe!(10, u8); //~ ERROR use of unstable library feature 'type_ascription': placeholder syntax for type ascription
}
diff --git a/tests/ui/feature-gates/feature-gate-type_ascription.stderr b/tests/ui/feature-gates/feature-gate-type_ascription.stderr
index 615d5b9a1..d747aea6d 100644
--- a/tests/ui/feature-gates/feature-gate-type_ascription.stderr
+++ b/tests/ui/feature-gates/feature-gate-type_ascription.stderr
@@ -1,8 +1,8 @@
-error[E0658]: type ascription is experimental
+error[E0658]: use of unstable library feature 'type_ascription': placeholder syntax for type ascription
--> $DIR/feature-gate-type_ascription.rs:4:13
|
-LL | let a = 10: u8;
- | ^^^^^^
+LL | let a = type_ascribe!(10, u8);
+ | ^^^^^^^^^^^^
|
= note: see issue #23416 <https://github.com/rust-lang/rust/issues/23416> for more information
= help: add `#![feature(type_ascription)]` to the crate attributes to enable
diff --git a/tests/ui/feature-gates/feature-gate-unsafe_pin_internals.rs b/tests/ui/feature-gates/feature-gate-unsafe_pin_internals.rs
index 0680d2344..dce94c9ea 100644
--- a/tests/ui/feature-gates/feature-gate-unsafe_pin_internals.rs
+++ b/tests/ui/feature-gates/feature-gate-unsafe_pin_internals.rs
@@ -13,5 +13,4 @@ fn non_unsafe_pin_new_unchecked<T>(pointer: &mut T) -> Pin<&mut T> {
fn main() {
let mut self_referential = PhantomPinned;
let _: Pin<&mut PhantomPinned> = non_unsafe_pin_new_unchecked(&mut self_referential);
- core::mem::forget(self_referential); // move and disable drop glue!
}
diff --git a/tests/ui/feature-gates/feature-gate-vectorcall.rs b/tests/ui/feature-gates/feature-gate-vectorcall.rs
index 5a6c6d288..706780dfd 100644
--- a/tests/ui/feature-gates/feature-gate-vectorcall.rs
+++ b/tests/ui/feature-gates/feature-gate-vectorcall.rs
@@ -6,8 +6,8 @@
#[lang="sized"]
trait Sized { }
-// Test that the "vectorcall-unwind" ABI is feature-gated, and cannot be used when
-// the `c_unwind` feature gate is not used.
+// Test that the "vectorcall" ABI is feature-gated, and cannot be used when
+// the `vectorcall` feature gate is not used.
extern "vectorcall" fn f() {} //~ ERROR vectorcall is experimental