about summary refs log tree commit diff
path: root/src/test/ui/impl-trait
diff options
context:
space:
mode:
authorSantiago Pastorino <spastorino@gmail.com>2021-07-14 12:31:58 -0300
committerSantiago Pastorino <spastorino@gmail.com>2021-07-17 23:14:22 -0300
commit66c9cd9e66012cfbbd1a111e0cca96e4b214aa8c (patch)
treee492ddf4fdfa8086056f6b38dc9e177956e554e4 /src/test/ui/impl-trait
parenteb0b95b55a0b38d91e834dd30902b67627ed2eb0 (diff)
downloadrust-66c9cd9e66012cfbbd1a111e0cca96e4b214aa8c.tar.gz
rust-66c9cd9e66012cfbbd1a111e0cca96e4b214aa8c.zip
Remove OpaqueTyOrigin::Binding
Diffstat (limited to 'src/test/ui/impl-trait')
-rw-r--r--src/test/ui/impl-trait/binding-without-value.rs9
-rw-r--r--src/test/ui/impl-trait/binding-without-value.stderr16
-rw-r--r--src/test/ui/impl-trait/bindings-opaque.rs17
-rw-r--r--src/test/ui/impl-trait/bindings-opaque.stderr30
-rw-r--r--src/test/ui/impl-trait/bound-normalization-pass.rs34
-rw-r--r--src/test/ui/impl-trait/impl-trait-in-bindings-issue-73003.rs8
-rw-r--r--src/test/ui/impl-trait/impl-trait-in-bindings-issue-73003.stderr11
-rw-r--r--src/test/ui/impl-trait/impl-trait-in-bindings.rs49
-rw-r--r--src/test/ui/impl-trait/impl-trait-in-bindings.stderr11
-rw-r--r--src/test/ui/impl-trait/issue-57200.rs15
-rw-r--r--src/test/ui/impl-trait/issue-57200.stderr8
-rw-r--r--src/test/ui/impl-trait/issue-57201.rs15
-rw-r--r--src/test/ui/impl-trait/issue-57201.stderr8
-rw-r--r--src/test/ui/impl-trait/issue-60473.rs15
-rw-r--r--src/test/ui/impl-trait/issue-60473.stderr15
-rw-r--r--src/test/ui/impl-trait/issue-67166.rs11
-rw-r--r--src/test/ui/impl-trait/issue-67166.stderr15
-rw-r--r--src/test/ui/impl-trait/issue-69840.rs16
-rw-r--r--src/test/ui/impl-trait/issues/issue-78721.rs15
-rw-r--r--src/test/ui/impl-trait/issues/issue-78721.stderr31
20 files changed, 8 insertions, 341 deletions
diff --git a/src/test/ui/impl-trait/binding-without-value.rs b/src/test/ui/impl-trait/binding-without-value.rs
deleted file mode 100644
index 6a97f28ff55..00000000000
--- a/src/test/ui/impl-trait/binding-without-value.rs
+++ /dev/null
@@ -1,9 +0,0 @@
-#![allow(incomplete_features)]
-#![feature(impl_trait_in_bindings)]
-
-fn foo() {
-    let _ : impl Copy;
-    //~^ ERROR cannot resolve opaque type
-}
-
-fn main() {}
diff --git a/src/test/ui/impl-trait/binding-without-value.stderr b/src/test/ui/impl-trait/binding-without-value.stderr
deleted file mode 100644
index 0d2faeaf85d..00000000000
--- a/src/test/ui/impl-trait/binding-without-value.stderr
+++ /dev/null
@@ -1,16 +0,0 @@
-error[E0720]: cannot resolve opaque type
-  --> $DIR/binding-without-value.rs:5:13
-   |
-LL |     let _ : impl Copy;
-   |         -   ^^^^^^^^^ cannot resolve opaque type
-   |         |
-   |         this binding might not have a concrete type
-   |
-help: set the binding to a value for a concrete type to be resolved
-   |
-LL |     let _ : impl Copy = /* value */;
-   |                       ^^^^^^^^^^^^^
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0720`.
diff --git a/src/test/ui/impl-trait/bindings-opaque.rs b/src/test/ui/impl-trait/bindings-opaque.rs
deleted file mode 100644
index d1f42be077d..00000000000
--- a/src/test/ui/impl-trait/bindings-opaque.rs
+++ /dev/null
@@ -1,17 +0,0 @@
-#![feature(impl_trait_in_bindings)]
-//~^ WARN the feature `impl_trait_in_bindings` is incomplete
-
-const FOO: impl Copy = 42;
-
-static BAR: impl Copy = 42;
-
-fn main() {
-    let foo: impl Copy = 42;
-
-    let _ = FOO.count_ones();
-//~^ ERROR no method
-    let _ = BAR.count_ones();
-//~^ ERROR no method
-    let _ = foo.count_ones();
-//~^ ERROR no method
-}
diff --git a/src/test/ui/impl-trait/bindings-opaque.stderr b/src/test/ui/impl-trait/bindings-opaque.stderr
deleted file mode 100644
index 170bd461234..00000000000
--- a/src/test/ui/impl-trait/bindings-opaque.stderr
+++ /dev/null
@@ -1,30 +0,0 @@
-warning: the feature `impl_trait_in_bindings` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/bindings-opaque.rs:1:12
-   |
-LL | #![feature(impl_trait_in_bindings)]
-   |            ^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63065 <https://github.com/rust-lang/rust/issues/63065> for more information
-
-error[E0599]: no method named `count_ones` found for opaque type `impl Copy` in the current scope
-  --> $DIR/bindings-opaque.rs:11:17
-   |
-LL |     let _ = FOO.count_ones();
-   |                 ^^^^^^^^^^ method not found in `impl Copy`
-
-error[E0599]: no method named `count_ones` found for opaque type `impl Copy` in the current scope
-  --> $DIR/bindings-opaque.rs:13:17
-   |
-LL |     let _ = BAR.count_ones();
-   |                 ^^^^^^^^^^ method not found in `impl Copy`
-
-error[E0599]: no method named `count_ones` found for opaque type `impl Copy` in the current scope
-  --> $DIR/bindings-opaque.rs:15:17
-   |
-LL |     let _ = foo.count_ones();
-   |                 ^^^^^^^^^^ method not found in `impl Copy`
-
-error: aborting due to 3 previous errors; 1 warning emitted
-
-For more information about this error, try `rustc --explain E0599`.
diff --git a/src/test/ui/impl-trait/bound-normalization-pass.rs b/src/test/ui/impl-trait/bound-normalization-pass.rs
index 6a01753b4c2..5144f05681b 100644
--- a/src/test/ui/impl-trait/bound-normalization-pass.rs
+++ b/src/test/ui/impl-trait/bound-normalization-pass.rs
@@ -14,7 +14,9 @@
 
 struct Foo<T>(T);
 
-trait FooLike { type Output; }
+trait FooLike {
+    type Output;
+}
 
 impl<T> FooLike for Foo<T> {
     type Output = T;
@@ -28,7 +30,7 @@ mod impl_trait {
     }
 
     /// `T::Assoc` should be normalized to `()` here.
-    fn foo_pass<T: Trait<Assoc=()>>() -> impl FooLike<Output=T::Assoc> {
+    fn foo_pass<T: Trait<Assoc = ()>>() -> impl FooLike<Output = T::Assoc> {
         Foo(())
     }
 }
@@ -45,40 +47,20 @@ mod lifetimes {
     /// Like above.
     ///
     /// FIXME(#51525) -- the shorter notation `T::Assoc` winds up referencing `'static` here
-    fn foo2_pass<'a, T: Trait<'a, Assoc=()> + 'a>(
-    ) -> impl FooLike<Output=<T as Trait<'a>>::Assoc> + 'a {
+    fn foo2_pass<'a, T: Trait<'a, Assoc = ()> + 'a>()
+    -> impl FooLike<Output = <T as Trait<'a>>::Assoc> + 'a {
         Foo(())
     }
 
     /// Normalization to type containing bound region.
     ///
     /// FIXME(#51525) -- the shorter notation `T::Assoc` winds up referencing `'static` here
-    fn foo2_pass2<'a, T: Trait<'a, Assoc=&'a ()> + 'a>(
-    ) -> impl FooLike<Output=<T as Trait<'a>>::Assoc> + 'a {
+    fn foo2_pass2<'a, T: Trait<'a, Assoc = &'a ()> + 'a>()
+    -> impl FooLike<Output = <T as Trait<'a>>::Assoc> + 'a {
         Foo(&())
     }
 }
 
-// Reduction using `impl Trait` in bindings
-
-mod impl_trait_in_bindings {
-    struct Foo;
-
-    trait FooLike { type Output; }
-
-    impl FooLike for Foo {
-        type Output = u32;
-    }
-
-    trait Trait {
-        type Assoc;
-    }
-
-    fn foo<T: Trait<Assoc=u32>>() {
-        let _: impl FooLike<Output=T::Assoc> = Foo;
-    }
-}
-
 // The same applied to `type Foo = impl Bar`s
 
 mod opaque_types {
diff --git a/src/test/ui/impl-trait/impl-trait-in-bindings-issue-73003.rs b/src/test/ui/impl-trait/impl-trait-in-bindings-issue-73003.rs
deleted file mode 100644
index fd8fe5f48df..00000000000
--- a/src/test/ui/impl-trait/impl-trait-in-bindings-issue-73003.rs
+++ /dev/null
@@ -1,8 +0,0 @@
-// check-pass
-
-#![feature(impl_trait_in_bindings)]
-//~^ WARN the feature `impl_trait_in_bindings` is incomplete
-
-const _: impl Fn() = ||();
-
-fn main() {}
diff --git a/src/test/ui/impl-trait/impl-trait-in-bindings-issue-73003.stderr b/src/test/ui/impl-trait/impl-trait-in-bindings-issue-73003.stderr
deleted file mode 100644
index 715671c8add..00000000000
--- a/src/test/ui/impl-trait/impl-trait-in-bindings-issue-73003.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `impl_trait_in_bindings` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/impl-trait-in-bindings-issue-73003.rs:3:12
-   |
-LL | #![feature(impl_trait_in_bindings)]
-   |            ^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63065 <https://github.com/rust-lang/rust/issues/63065> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/impl-trait/impl-trait-in-bindings.rs b/src/test/ui/impl-trait/impl-trait-in-bindings.rs
deleted file mode 100644
index c7fae45d5ca..00000000000
--- a/src/test/ui/impl-trait/impl-trait-in-bindings.rs
+++ /dev/null
@@ -1,49 +0,0 @@
-// run-pass
-
-#![feature(impl_trait_in_bindings)]
-//~^ WARN the feature `impl_trait_in_bindings` is incomplete
-
-use std::fmt::Debug;
-
-const FOO: impl Debug + Clone + PartialEq<i32> = 42;
-
-static BAR: impl Debug + Clone + PartialEq<i32> = 42;
-
-fn a<T: Clone>(x: T) {
-    let y: impl Clone = x;
-    let _ = y.clone();
-}
-
-fn b<T: Clone>(x: T) {
-    let f = move || {
-        let y: impl Clone = x;
-        let _ = y.clone();
-    };
-    f();
-}
-
-trait Foo<T: Clone> {
-    fn a(x: T) {
-        let y: impl Clone = x;
-        let _ = y.clone();
-    }
-}
-
-impl<T: Clone> Foo<T> for i32 {
-    fn a(x: T) {
-        let y: impl Clone = x;
-        let _ = y.clone();
-    }
-}
-
-fn main() {
-    let foo: impl Debug + Clone + PartialEq<i32> = 42;
-
-    assert_eq!(FOO.clone(), 42);
-    assert_eq!(BAR.clone(), 42);
-    assert_eq!(foo.clone(), 42);
-
-    a(42);
-    b(42);
-    i32::a(42);
-}
diff --git a/src/test/ui/impl-trait/impl-trait-in-bindings.stderr b/src/test/ui/impl-trait/impl-trait-in-bindings.stderr
deleted file mode 100644
index bf739d4722f..00000000000
--- a/src/test/ui/impl-trait/impl-trait-in-bindings.stderr
+++ /dev/null
@@ -1,11 +0,0 @@
-warning: the feature `impl_trait_in_bindings` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/impl-trait-in-bindings.rs:3:12
-   |
-LL | #![feature(impl_trait_in_bindings)]
-   |            ^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63065 <https://github.com/rust-lang/rust/issues/63065> for more information
-
-warning: 1 warning emitted
-
diff --git a/src/test/ui/impl-trait/issue-57200.rs b/src/test/ui/impl-trait/issue-57200.rs
deleted file mode 100644
index e0c71d1ac9a..00000000000
--- a/src/test/ui/impl-trait/issue-57200.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-// Regression test for #57200
-// FIXME: The error is temporary hack, we'll revisit here at some point.
-
-#![feature(impl_trait_in_bindings)]
-#![allow(incomplete_features)]
-
-fn bug<'a, 'b, T>()
-where
-    'a: 'b,
-{
-    let f: impl Fn(&'a T) -> &'b T = |x| x;
-    //~^ ERROR: lifetimes in impl Trait types in bindings are not currently supported
-}
-
-fn main() {}
diff --git a/src/test/ui/impl-trait/issue-57200.stderr b/src/test/ui/impl-trait/issue-57200.stderr
deleted file mode 100644
index b44f332d58c..00000000000
--- a/src/test/ui/impl-trait/issue-57200.stderr
+++ /dev/null
@@ -1,8 +0,0 @@
-error: lifetimes in impl Trait types in bindings are not currently supported
-  --> $DIR/issue-57200.rs:11:12
-   |
-LL |     let f: impl Fn(&'a T) -> &'b T = |x| x;
-   |            ^^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to previous error
-
diff --git a/src/test/ui/impl-trait/issue-57201.rs b/src/test/ui/impl-trait/issue-57201.rs
deleted file mode 100644
index c1a98d8897b..00000000000
--- a/src/test/ui/impl-trait/issue-57201.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-// Regression test for #57201
-// FIXME: The error is temporary hack, we'll revisit here at some point.
-
-#![feature(impl_trait_in_bindings)]
-#![allow(incomplete_features)]
-
-fn bug<'a, 'b, T>()
-where
-    'a: 'b,
-{
-    let f: &impl Fn(&'a T) -> &'b T = &|x| x;
-    //~^ ERROR: lifetimes in impl Trait types in bindings are not currently supported
-}
-
-fn main() {}
diff --git a/src/test/ui/impl-trait/issue-57201.stderr b/src/test/ui/impl-trait/issue-57201.stderr
deleted file mode 100644
index 462b17bf45e..00000000000
--- a/src/test/ui/impl-trait/issue-57201.stderr
+++ /dev/null
@@ -1,8 +0,0 @@
-error: lifetimes in impl Trait types in bindings are not currently supported
-  --> $DIR/issue-57201.rs:11:13
-   |
-LL |     let f: &impl Fn(&'a T) -> &'b T = &|x| x;
-   |             ^^^^^^^^^^^^^^^^^^^^^^^
-
-error: aborting due to previous error
-
diff --git a/src/test/ui/impl-trait/issue-60473.rs b/src/test/ui/impl-trait/issue-60473.rs
deleted file mode 100644
index 2ef86f03d34..00000000000
--- a/src/test/ui/impl-trait/issue-60473.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-// Regression test for #60473
-
-#![feature(impl_trait_in_bindings)]
-#![allow(incomplete_features)]
-
-struct A<'a>(&'a ());
-
-trait Trait<T> {}
-
-impl<T> Trait<T> for () {}
-
-fn main() {
-    let x: impl Trait<A> = ();
-    //~^ ERROR: missing lifetime specifier
-}
diff --git a/src/test/ui/impl-trait/issue-60473.stderr b/src/test/ui/impl-trait/issue-60473.stderr
deleted file mode 100644
index 367b5db5d2d..00000000000
--- a/src/test/ui/impl-trait/issue-60473.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error[E0106]: missing lifetime specifier
-  --> $DIR/issue-60473.rs:13:23
-   |
-LL |     let x: impl Trait<A> = ();
-   |                       ^ expected named lifetime parameter
-   |
-help: consider introducing a named lifetime parameter
-   |
-LL | fn main<'a>() {
-LL |     let x: impl Trait<A<'a>> = ();
-   |
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0106`.
diff --git a/src/test/ui/impl-trait/issue-67166.rs b/src/test/ui/impl-trait/issue-67166.rs
deleted file mode 100644
index efa67558bd7..00000000000
--- a/src/test/ui/impl-trait/issue-67166.rs
+++ /dev/null
@@ -1,11 +0,0 @@
-// Regression test for #67166
-
-#![feature(impl_trait_in_bindings)]
-#![allow(incomplete_features)]
-
-pub fn run() {
-    let _foo: Box<impl Copy + '_> = Box::new(());
-    //~^ ERROR: missing lifetime specifier
-}
-
-fn main() {}
diff --git a/src/test/ui/impl-trait/issue-67166.stderr b/src/test/ui/impl-trait/issue-67166.stderr
deleted file mode 100644
index 14c78684e3e..00000000000
--- a/src/test/ui/impl-trait/issue-67166.stderr
+++ /dev/null
@@ -1,15 +0,0 @@
-error[E0106]: missing lifetime specifier
-  --> $DIR/issue-67166.rs:7:31
-   |
-LL |     let _foo: Box<impl Copy + '_> = Box::new(());
-   |                               ^^ expected named lifetime parameter
-   |
-help: consider introducing a named lifetime parameter
-   |
-LL | pub fn run<'a>() {
-LL |     let _foo: Box<impl Copy + 'a> = Box::new(());
-   |
-
-error: aborting due to previous error
-
-For more information about this error, try `rustc --explain E0106`.
diff --git a/src/test/ui/impl-trait/issue-69840.rs b/src/test/ui/impl-trait/issue-69840.rs
deleted file mode 100644
index b270f88b688..00000000000
--- a/src/test/ui/impl-trait/issue-69840.rs
+++ /dev/null
@@ -1,16 +0,0 @@
-// check-pass
-
-#![feature(impl_trait_in_bindings)]
-#![allow(incomplete_features)]
-
-struct A<'a>(&'a ());
-
-trait Trait<T> {}
-
-impl<T> Trait<T> for () {}
-
-pub fn foo<'a>() {
-    let _x: impl Trait<A<'a>> = ();
-}
-
-fn main() {}
diff --git a/src/test/ui/impl-trait/issues/issue-78721.rs b/src/test/ui/impl-trait/issues/issue-78721.rs
deleted file mode 100644
index f7dbef9e3ff..00000000000
--- a/src/test/ui/impl-trait/issues/issue-78721.rs
+++ /dev/null
@@ -1,15 +0,0 @@
-// edition:2018
-
-#![feature(impl_trait_in_bindings)]
-//~^ WARN the feature `impl_trait_in_bindings` is incomplete
-
-struct Bug {
-    V1: [(); {
-        let f: impl core::future::Future<Output = u8> = async { 1 };
-        //~^ ERROR `async` blocks are not allowed in constants
-        //~| ERROR destructors cannot be evaluated at compile-time
-        1
-    }],
-}
-
-fn main() {}
diff --git a/src/test/ui/impl-trait/issues/issue-78721.stderr b/src/test/ui/impl-trait/issues/issue-78721.stderr
deleted file mode 100644
index d5712dd9200..00000000000
--- a/src/test/ui/impl-trait/issues/issue-78721.stderr
+++ /dev/null
@@ -1,31 +0,0 @@
-warning: the feature `impl_trait_in_bindings` is incomplete and may not be safe to use and/or cause compiler crashes
-  --> $DIR/issue-78721.rs:3:12
-   |
-LL | #![feature(impl_trait_in_bindings)]
-   |            ^^^^^^^^^^^^^^^^^^^^^^
-   |
-   = note: `#[warn(incomplete_features)]` on by default
-   = note: see issue #63065 <https://github.com/rust-lang/rust/issues/63065> for more information
-
-error[E0658]: `async` blocks are not allowed in constants
-  --> $DIR/issue-78721.rs:8:57
-   |
-LL |         let f: impl core::future::Future<Output = u8> = async { 1 };
-   |                                                         ^^^^^^^^^^^
-   |
-   = note: see issue #85368 <https://github.com/rust-lang/rust/issues/85368> for more information
-   = help: add `#![feature(const_async_blocks)]` to the crate attributes to enable
-
-error[E0493]: destructors cannot be evaluated at compile-time
-  --> $DIR/issue-78721.rs:8:13
-   |
-LL |         let f: impl core::future::Future<Output = u8> = async { 1 };
-   |             ^ constants cannot evaluate destructors
-...
-LL |     }],
-   |     - value is dropped here
-
-error: aborting due to 2 previous errors; 1 warning emitted
-
-Some errors have detailed explanations: E0493, E0658.
-For more information about an error, try `rustc --explain E0493`.