From ff24ac4f2b1415cc93e0cc3edb70097df6dae073 Mon Sep 17 00:00:00 2001 From: Deadbeef Date: Wed, 25 Aug 2021 14:30:09 +0000 Subject: [PATCH] Try fixing some tests --- .../call-generic-method-dup-bound.rs | 6 +-- .../call-generic-method-fail.rs | 4 +- ... => call-generic-method-nonconst-bound.rs} | 3 -- .../feature-gate.gated.stderr | 8 ---- .../const-trait-bound-opt-out/feature-gate.rs | 17 --------- .../feature-gate.stock.stderr | 12 ------ .../in-impl-trait.rs | 21 ---------- .../in-impl-trait.stderr | 26 ------------- .../in-trait-bounds.rs | 8 ---- .../in-trait-bounds.stderr | 8 ---- .../in-trait-object.rs | 19 ---------- .../in-trait-object.stderr | 20 ---------- .../opt-out-twice.rs | 8 ---- .../opt-out-twice.stderr | 14 ------- .../const-trait-bound-opt-out/syntax.rs | 10 ----- .../with-maybe-sized.rs | 7 ---- .../with-maybe-sized.stderr | 8 ---- .../without-question-mark.rs | 7 ---- .../without-question-mark.stderr | 8 ---- .../impl-opt-out-trait.stderr | 8 ---- ...out-trait.rs => impl-tilde-const-trait.rs} | 4 +- .../inherent-impl.rs | 2 - .../ui/rfc-2632-const-trait-impl/syntax.rs | 2 +- .../tilde-const-invalid-places.rs | 38 +++++++++++++++++++ .../tilde-const-on-non-const-fn.rs | 12 ------ .../tilde-const-on-non-const-fn.stderr | 18 --------- .../tilde-const-syntax.rs | 9 +++++ 27 files changed, 52 insertions(+), 255 deletions(-) rename src/test/ui/rfc-2632-const-trait-impl/{call-generic-method-nonconst-opt-out.rs => call-generic-method-nonconst-bound.rs} (71%) delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/feature-gate.gated.stderr delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/feature-gate.rs delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/feature-gate.stock.stderr delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-impl-trait.rs delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-impl-trait.stderr delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-bounds.rs delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-bounds.stderr delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-object.rs delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-object.stderr delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/opt-out-twice.rs delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/opt-out-twice.stderr delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/syntax.rs delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/with-maybe-sized.rs delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/with-maybe-sized.stderr delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/without-question-mark.rs delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/without-question-mark.stderr delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/impl-opt-out-trait.stderr rename src/test/ui/rfc-2632-const-trait-impl/{impl-opt-out-trait.rs => impl-tilde-const-trait.rs} (53%) create mode 100644 src/test/ui/rfc-2632-const-trait-impl/tilde-const-invalid-places.rs delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/tilde-const-on-non-const-fn.rs delete mode 100644 src/test/ui/rfc-2632-const-trait-impl/tilde-const-on-non-const-fn.stderr create mode 100644 src/test/ui/rfc-2632-const-trait-impl/tilde-const-syntax.rs diff --git a/src/test/ui/rfc-2632-const-trait-impl/call-generic-method-dup-bound.rs b/src/test/ui/rfc-2632-const-trait-impl/call-generic-method-dup-bound.rs index 00a3c7f51fe..5853b66b868 100644 --- a/src/test/ui/rfc-2632-const-trait-impl/call-generic-method-dup-bound.rs +++ b/src/test/ui/rfc-2632-const-trait-impl/call-generic-method-dup-bound.rs @@ -1,9 +1,7 @@ // check-pass #![feature(const_trait_impl)] -#![feature(const_trait_bound_opt_out)] #![feature(const_fn_trait_bound)] -#![allow(incomplete_features)] struct S; @@ -16,9 +14,9 @@ impl const PartialEq for S { } } -// This duplicate bound should not result in ambiguities. It should be equivalent to a single const +// This duplicate bound should not result in ambiguities. It should be equivalent to a single ~const // bound. -const fn equals_self(t: &T) -> bool { +const fn equals_self(t: &T) -> bool { *t == *t } diff --git a/src/test/ui/rfc-2632-const-trait-impl/call-generic-method-fail.rs b/src/test/ui/rfc-2632-const-trait-impl/call-generic-method-fail.rs index dc4d5561d47..e96249ff2fd 100644 --- a/src/test/ui/rfc-2632-const-trait-impl/call-generic-method-fail.rs +++ b/src/test/ui/rfc-2632-const-trait-impl/call-generic-method-fail.rs @@ -1,9 +1,7 @@ #![feature(const_fn_trait_bound)] #![feature(const_trait_impl)] -#![feature(const_trait_bound_opt_out)] -#![allow(incomplete_features)] -pub const fn equals_self(t: &T) -> bool { +pub const fn equals_self(t: &T) -> bool { *t == *t //~^ ERROR calls in constant functions are limited to constant functions } diff --git a/src/test/ui/rfc-2632-const-trait-impl/call-generic-method-nonconst-opt-out.rs b/src/test/ui/rfc-2632-const-trait-impl/call-generic-method-nonconst-bound.rs similarity index 71% rename from src/test/ui/rfc-2632-const-trait-impl/call-generic-method-nonconst-opt-out.rs rename to src/test/ui/rfc-2632-const-trait-impl/call-generic-method-nonconst-bound.rs index 8a0f39acf25..585b65988f3 100644 --- a/src/test/ui/rfc-2632-const-trait-impl/call-generic-method-nonconst-opt-out.rs +++ b/src/test/ui/rfc-2632-const-trait-impl/call-generic-method-nonconst-bound.rs @@ -1,9 +1,6 @@ // check-pass #![feature(const_fn_trait_bound)] -#![feature(const_trait_impl)] -#![feature(const_trait_bound_opt_out)] -#![allow(incomplete_features)] struct S; diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/feature-gate.gated.stderr b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/feature-gate.gated.stderr deleted file mode 100644 index 58041454d59..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/feature-gate.gated.stderr +++ /dev/null @@ -1,8 +0,0 @@ -error: fatal error triggered by #[rustc_error] - --> $DIR/feature-gate.rs:17:1 - | -LL | fn main() {} - | ^^^^^^^^^ - -error: aborting due to previous error - diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/feature-gate.rs b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/feature-gate.rs deleted file mode 100644 index 4452ad7ea23..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/feature-gate.rs +++ /dev/null @@ -1,17 +0,0 @@ -// revisions: stock gated -// gate-test-const_trait_bound_opt_out - -#![cfg_attr(gated, feature(const_trait_bound_opt_out))] -#![allow(incomplete_features)] -#![feature(rustc_attrs)] -#![feature(const_fn_trait_bound)] - -trait T { - const CONST: i32; -} - -const fn get_assoc_const() -> i32 { ::CONST } -//[stock]~^ ERROR `?const` on trait bounds is experimental - -#[rustc_error] -fn main() {} //[gated]~ ERROR fatal error triggered by #[rustc_error] diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/feature-gate.stock.stderr b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/feature-gate.stock.stderr deleted file mode 100644 index 8ae8b8868dd..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/feature-gate.stock.stderr +++ /dev/null @@ -1,12 +0,0 @@ -error[E0658]: `?const` on trait bounds is experimental - --> $DIR/feature-gate.rs:13:29 - | -LL | const fn get_assoc_const() -> i32 { ::CONST } - | ^^^^^^ - | - = note: see issue #67794 for more information - = help: add `#![feature(const_trait_bound_opt_out)]` 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/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-impl-trait.rs b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-impl-trait.rs deleted file mode 100644 index f5561a922dd..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-impl-trait.rs +++ /dev/null @@ -1,21 +0,0 @@ -#![feature(const_trait_bound_opt_out)] -#![feature(associated_type_bounds)] -#![allow(incomplete_features)] - -trait T {} -struct S; -impl T for S {} - -fn rpit() -> impl ?const T { S } -//~^ ERROR `?const` is not permitted in `impl Trait` - -fn apit(_: impl ?const T) {} -//~^ ERROR `?const` is not permitted in `impl Trait` - -fn rpit_assoc_bound() -> impl IntoIterator { Some(S) } -//~^ ERROR `?const` is not permitted in `impl Trait` - -fn apit_assoc_bound(_: impl IntoIterator) {} -//~^ ERROR `?const` is not permitted in `impl Trait` - -fn main() {} diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-impl-trait.stderr b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-impl-trait.stderr deleted file mode 100644 index 06cd00a956a..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-impl-trait.stderr +++ /dev/null @@ -1,26 +0,0 @@ -error: `?const` is not permitted in `impl Trait` - --> $DIR/in-impl-trait.rs:9:19 - | -LL | fn rpit() -> impl ?const T { S } - | ^^^^^^^^ - -error: `?const` is not permitted in `impl Trait` - --> $DIR/in-impl-trait.rs:12:17 - | -LL | fn apit(_: impl ?const T) {} - | ^^^^^^^^ - -error: `?const` is not permitted in `impl Trait` - --> $DIR/in-impl-trait.rs:15:50 - | -LL | fn rpit_assoc_bound() -> impl IntoIterator { Some(S) } - | ^^^^^^^^ - -error: `?const` is not permitted in `impl Trait` - --> $DIR/in-impl-trait.rs:18:48 - | -LL | fn apit_assoc_bound(_: impl IntoIterator) {} - | ^^^^^^^^ - -error: aborting due to 4 previous errors - diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-bounds.rs b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-bounds.rs deleted file mode 100644 index fc9ed5b1dc2..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-bounds.rs +++ /dev/null @@ -1,8 +0,0 @@ -#![feature(const_trait_bound_opt_out)] -#![allow(incomplete_features)] - -trait Super {} -trait T: ?const Super {} -//~^ ERROR `?const` is not permitted in supertraits - -fn main() {} diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-bounds.stderr b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-bounds.stderr deleted file mode 100644 index a0d8f95acd2..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-bounds.stderr +++ /dev/null @@ -1,8 +0,0 @@ -error: `?const` is not permitted in supertraits - --> $DIR/in-trait-bounds.rs:5:10 - | -LL | trait T: ?const Super {} - | ^^^^^^^^^^^^ - -error: aborting due to previous error - diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-object.rs b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-object.rs deleted file mode 100644 index b3d1f48ace1..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-object.rs +++ /dev/null @@ -1,19 +0,0 @@ -#![feature(const_trait_bound_opt_out)] -#![allow(bare_trait_objects)] -#![allow(incomplete_features)] - -struct S; -trait T {} -impl T for S {} - -// An inherent impl for the trait object `?const T`. -impl ?const T {} -//~^ ERROR `?const` is not permitted in trait objects - -fn trait_object() -> &'static dyn ?const T { &S } -//~^ ERROR `?const` is not permitted in trait objects - -fn trait_object_in_apit(_: impl IntoIterator>) {} -//~^ ERROR `?const` is not permitted in trait objects - -fn main() {} diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-object.stderr b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-object.stderr deleted file mode 100644 index 331fe0423fa..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/in-trait-object.stderr +++ /dev/null @@ -1,20 +0,0 @@ -error: `?const` is not permitted in trait objects - --> $DIR/in-trait-object.rs:10:6 - | -LL | impl ?const T {} - | ^^^^^^^^ - -error: `?const` is not permitted in trait objects - --> $DIR/in-trait-object.rs:13:35 - | -LL | fn trait_object() -> &'static dyn ?const T { &S } - | ^^^^^^^^ - -error: `?const` is not permitted in trait objects - --> $DIR/in-trait-object.rs:16:61 - | -LL | fn trait_object_in_apit(_: impl IntoIterator>) {} - | ^^^^^^^^ - -error: aborting due to 3 previous errors - diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/opt-out-twice.rs b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/opt-out-twice.rs deleted file mode 100644 index 01e941a8fba..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/opt-out-twice.rs +++ /dev/null @@ -1,8 +0,0 @@ -// compile-flags: -Z parse-only - -#![feature(const_trait_bound_opt_out)] -#![allow(incomplete_features)] - -struct S; -//~^ ERROR expected identifier, found keyword `const` -//~| ERROR expected one of `(`, `+`, `,`, `::`, `<`, `=`, or `>` diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/opt-out-twice.stderr b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/opt-out-twice.stderr deleted file mode 100644 index f7924b3f24d..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/opt-out-twice.stderr +++ /dev/null @@ -1,14 +0,0 @@ -error: expected identifier, found keyword `const` - --> $DIR/opt-out-twice.rs:6:21 - | -LL | struct S; - | ^^^^^ expected identifier, found keyword - -error: expected one of `(`, `+`, `,`, `::`, `<`, `=`, or `>`, found `Tr` - --> $DIR/opt-out-twice.rs:6:27 - | -LL | struct S; - | ^^ expected one of 7 possible tokens - -error: aborting due to 2 previous errors - diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/syntax.rs b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/syntax.rs deleted file mode 100644 index a0d9610bbb5..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/syntax.rs +++ /dev/null @@ -1,10 +0,0 @@ -// compile-flags: -Z parse-only -// check-pass - -#![feature(const_trait_bound_opt_out)] -#![allow(incomplete_features)] - -struct S< - T: ?const ?for<'a> Tr<'a> + 'static + ?const std::ops::Add, - T: ?const ?for<'a: 'b> m::Trait<'a>, ->; diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/with-maybe-sized.rs b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/with-maybe-sized.rs deleted file mode 100644 index c2c8689e294..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/with-maybe-sized.rs +++ /dev/null @@ -1,7 +0,0 @@ -#![feature(const_trait_bound_opt_out)] -#![allow(incomplete_features)] - -struct S(std::marker::PhantomData); -//~^ ERROR `?const` and `?` are mutually exclusive - -fn main() {} diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/with-maybe-sized.stderr b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/with-maybe-sized.stderr deleted file mode 100644 index e8e9d6c1e76..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/with-maybe-sized.stderr +++ /dev/null @@ -1,8 +0,0 @@ -error: `?const` and `?` are mutually exclusive - --> $DIR/with-maybe-sized.rs:4:13 - | -LL | struct S(std::marker::PhantomData); - | ^^^^^^^^^^^^^ - -error: aborting due to previous error - diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/without-question-mark.rs b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/without-question-mark.rs deleted file mode 100644 index b904a2eec0d..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/without-question-mark.rs +++ /dev/null @@ -1,7 +0,0 @@ -// compile-flags: -Z parse-only - -#![feature(const_trait_bound_opt_out)] -#![allow(incomplete_features)] - -struct S; -//~^ ERROR expected one of `!`, `(`, `,`, `=`, `>`, `?`, `for`, lifetime, or path diff --git a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/without-question-mark.stderr b/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/without-question-mark.stderr deleted file mode 100644 index 0dbca952c03..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/const-trait-bound-opt-out/without-question-mark.stderr +++ /dev/null @@ -1,8 +0,0 @@ -error: expected one of `!`, `(`, `,`, `=`, `>`, `?`, `for`, lifetime, or path, found keyword `const` - --> $DIR/without-question-mark.rs:6:13 - | -LL | struct S; - | ^^^^^ expected one of 9 possible tokens - -error: aborting due to previous error - diff --git a/src/test/ui/rfc-2632-const-trait-impl/impl-opt-out-trait.stderr b/src/test/ui/rfc-2632-const-trait-impl/impl-opt-out-trait.stderr deleted file mode 100644 index 8f923efb093..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/impl-opt-out-trait.stderr +++ /dev/null @@ -1,8 +0,0 @@ -error: expected a trait, found type - --> $DIR/impl-opt-out-trait.rs:8:6 - | -LL | impl ?const T for S {} - | ^^^^^^^^ - -error: aborting due to previous error - diff --git a/src/test/ui/rfc-2632-const-trait-impl/impl-opt-out-trait.rs b/src/test/ui/rfc-2632-const-trait-impl/impl-tilde-const-trait.rs similarity index 53% rename from src/test/ui/rfc-2632-const-trait-impl/impl-opt-out-trait.rs rename to src/test/ui/rfc-2632-const-trait-impl/impl-tilde-const-trait.rs index 98d3a220d86..05b26465c5b 100644 --- a/src/test/ui/rfc-2632-const-trait-impl/impl-opt-out-trait.rs +++ b/src/test/ui/rfc-2632-const-trait-impl/impl-tilde-const-trait.rs @@ -1,11 +1,9 @@ -#![feature(const_trait_bound_opt_out)] #![feature(const_trait_impl)] -#![allow(incomplete_features)] struct S; trait T {} -impl ?const T for S {} +impl ~const T for S {} //~^ ERROR expected a trait, found type fn main() {} diff --git a/src/test/ui/rfc-2632-const-trait-impl/inherent-impl.rs b/src/test/ui/rfc-2632-const-trait-impl/inherent-impl.rs index 04123a532bd..afd0d137bb4 100644 --- a/src/test/ui/rfc-2632-const-trait-impl/inherent-impl.rs +++ b/src/test/ui/rfc-2632-const-trait-impl/inherent-impl.rs @@ -1,6 +1,4 @@ #![feature(const_trait_impl)] -#![feature(const_trait_bound_opt_out)] -#![allow(incomplete_features)] #![allow(bare_trait_objects)] struct S; diff --git a/src/test/ui/rfc-2632-const-trait-impl/syntax.rs b/src/test/ui/rfc-2632-const-trait-impl/syntax.rs index 82a1275bffa..7ac2458e399 100644 --- a/src/test/ui/rfc-2632-const-trait-impl/syntax.rs +++ b/src/test/ui/rfc-2632-const-trait-impl/syntax.rs @@ -5,4 +5,4 @@ #![feature(const_trait_impl)] // For now, this parses since an error does not occur until AST lowering. -impl ?const T {} +impl ~const T {} diff --git a/src/test/ui/rfc-2632-const-trait-impl/tilde-const-invalid-places.rs b/src/test/ui/rfc-2632-const-trait-impl/tilde-const-invalid-places.rs new file mode 100644 index 00000000000..a8912705d94 --- /dev/null +++ b/src/test/ui/rfc-2632-const-trait-impl/tilde-const-invalid-places.rs @@ -0,0 +1,38 @@ +#![feature(const_trait_impl)] +#![feature(associated_type_bounds)] + +trait T {} +struct S; +impl T for S {} + +fn rpit() -> impl ~const T { S } +//~^ ERROR `~const` is not allowed + +fn apit(_: impl ~const T) {} +//~^ ERROR `~const` is not allowed + +fn rpit_assoc_bound() -> impl IntoIterator { Some(S) } +//~^ ERROR `~const` is not allowed + +fn apit_assoc_bound(_: impl IntoIterator) {} +//~^ ERROR `~const` is not allowed + +fn generic() {} +//~^ ERROR `~const` is not allowed + +fn where_clause() where T: ~const T {} +//~^ ERROR `~const` is not allowed + +impl ~const T {} +//~^ ERROR `~const` is not allowed + +fn trait_object() -> &'static dyn ~const T { &S } +//~^ ERROR `~const` is not allowed + +fn trait_object_in_apit(_: impl IntoIterator>) {} +//~^ ERROR `~const` is not allowed + +struct S(std::marker::PhantomData); +//~^ ERROR `~const` and `?` are mutually exclusive + +fn main() {} diff --git a/src/test/ui/rfc-2632-const-trait-impl/tilde-const-on-non-const-fn.rs b/src/test/ui/rfc-2632-const-trait-impl/tilde-const-on-non-const-fn.rs deleted file mode 100644 index cde5233d4c8..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/tilde-const-on-non-const-fn.rs +++ /dev/null @@ -1,12 +0,0 @@ -#![feature(const_trait_impl)] -fn a>() {} -//~^ ERROR: `~const` is not allowed - -struct S; - -impl S { - fn b>() {} - //~^ ERROR: `~const` is not allowed -} - -fn main() {} diff --git a/src/test/ui/rfc-2632-const-trait-impl/tilde-const-on-non-const-fn.stderr b/src/test/ui/rfc-2632-const-trait-impl/tilde-const-on-non-const-fn.stderr deleted file mode 100644 index 4f81a607f6e..00000000000 --- a/src/test/ui/rfc-2632-const-trait-impl/tilde-const-on-non-const-fn.stderr +++ /dev/null @@ -1,18 +0,0 @@ -error: `~const` is not allowed here - --> $DIR/tilde-const-on-non-const-fn.rs:2:9 - | -LL | fn a>() {} - | ^^^^^^^^^^^^^^^ - | - = note: only allowed on bounds on traits' associated types, const fns, const impls and its associated functions - -error: `~const` is not allowed here - --> $DIR/tilde-const-on-non-const-fn.rs:8:13 - | -LL | fn b>() {} - | ^^^^^^^^^^^^^^^ - | - = note: only allowed on bounds on traits' associated types, const fns, const impls and its associated functions - -error: aborting due to 2 previous errors - diff --git a/src/test/ui/rfc-2632-const-trait-impl/tilde-const-syntax.rs b/src/test/ui/rfc-2632-const-trait-impl/tilde-const-syntax.rs new file mode 100644 index 00000000000..9b3c2cf2a3b --- /dev/null +++ b/src/test/ui/rfc-2632-const-trait-impl/tilde-const-syntax.rs @@ -0,0 +1,9 @@ +// compile-flags: -Z parse-only +// check-pass + +#![feature(const_trait_impl)] + +struct S< + T: ~const ?for<'a> Tr<'a> + 'static + ~const std::ops::Add, + T: ~const ?for<'a: 'b> m::Trait<'a>, +>;