about summary refs log tree commit diff
diff options
context:
space:
mode:
authorYuki OKUSHI <huyuumi.dev@gmail.com>2019-04-30 20:43:10 +0900
committerYuki OKUSHI <huyuumi.dev@gmail.com>2019-04-30 20:43:10 +0900
commitbb3549fce26355c79437d516b7afa4d4ddad924f (patch)
tree8a93ef62cb155e1413b43911769bbf354d1da059
parentda46eeac88ea24c8c7b5d78c5ac4e0fe681ef13e (diff)
downloadrust-bb3549fce26355c79437d516b7afa4d4ddad924f.tar.gz
rust-bb3549fce26355c79437d516b7afa4d4ddad924f.zip
Fix tests
-rw-r--r--src/test/ui/existential_types/existential-types-with-no-traits.rs14
-rw-r--r--src/test/ui/existential_types/existential-types-with-no-traits.stderr14
-rw-r--r--src/test/ui/existential_types/generic_nondefining_use.rs2
-rw-r--r--src/test/ui/existential_types/generic_nondefining_use.stderr10
-rw-r--r--src/test/ui/existential_types/generic_not_used.rs1
-rw-r--r--src/test/ui/existential_types/generic_not_used.stderr10
-rw-r--r--src/test/ui/existential_types/generic_type_does_not_live_long_enough.rs1
-rw-r--r--src/test/ui/existential_types/generic_type_does_not_live_long_enough.stderr8
-rw-r--r--src/test/ui/existential_types/generic_underconstrained.rs1
-rw-r--r--src/test/ui/existential_types/generic_underconstrained.stderr8
-rw-r--r--src/test/ui/existential_types/generic_underconstrained2.rs2
-rw-r--r--src/test/ui/existential_types/generic_underconstrained2.stderr16
-rw-r--r--src/test/ui/existential_types/unused_generic_param.rs5
-rw-r--r--src/test/ui/existential_types/unused_generic_param.stderr14
14 files changed, 95 insertions, 11 deletions
diff --git a/src/test/ui/existential_types/existential-types-with-no-traits.rs b/src/test/ui/existential_types/existential-types-with-no-traits.rs
new file mode 100644
index 00000000000..46339c73b1f
--- /dev/null
+++ b/src/test/ui/existential_types/existential-types-with-no-traits.rs
@@ -0,0 +1,14 @@
+#![feature(existential_type)]
+
+existential type Foo: 'static;
+//~^ ERROR: at least one trait must be specified
+
+fn foo() -> Foo {
+    "foo"
+}
+
+fn bar() -> impl 'static { //~ ERROR: at least one trait must be specified
+    "foo"
+}
+
+fn main() {}
diff --git a/src/test/ui/existential_types/existential-types-with-no-traits.stderr b/src/test/ui/existential_types/existential-types-with-no-traits.stderr
new file mode 100644
index 00000000000..1464e8b48eb
--- /dev/null
+++ b/src/test/ui/existential_types/existential-types-with-no-traits.stderr
@@ -0,0 +1,14 @@
+error: at least one trait must be specified
+  --> $DIR/existential-types-with-no-traits.rs:3:1
+   |
+LL | existential type Foo: 'static;
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: at least one trait must be specified
+  --> $DIR/existential-types-with-no-traits.rs:10:13
+   |
+LL | fn bar() -> impl 'static {
+   |             ^^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+
diff --git a/src/test/ui/existential_types/generic_nondefining_use.rs b/src/test/ui/existential_types/generic_nondefining_use.rs
index 75af5d9570f..ffc965aca47 100644
--- a/src/test/ui/existential_types/generic_nondefining_use.rs
+++ b/src/test/ui/existential_types/generic_nondefining_use.rs
@@ -4,6 +4,8 @@ fn main() {}
 
 existential type Cmp<T>: 'static;
 //~^ ERROR could not find defining uses
+//~^^ ERROR: at least one trait must be specified
+
 
 // not a defining use, because it doesn't define *all* possible generics
 fn cmp() -> Cmp<u32> { //~ ERROR defining existential type use does not fully define
diff --git a/src/test/ui/existential_types/generic_nondefining_use.stderr b/src/test/ui/existential_types/generic_nondefining_use.stderr
index ef579260f06..7bde5f3ee5e 100644
--- a/src/test/ui/existential_types/generic_nondefining_use.stderr
+++ b/src/test/ui/existential_types/generic_nondefining_use.stderr
@@ -1,5 +1,11 @@
+error: at least one trait must be specified
+  --> $DIR/generic_nondefining_use.rs:5:1
+   |
+LL | existential type Cmp<T>: 'static;
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
 error: defining existential type use does not fully define existential type
-  --> $DIR/generic_nondefining_use.rs:9:1
+  --> $DIR/generic_nondefining_use.rs:11:1
    |
 LL | / fn cmp() -> Cmp<u32> {
 LL | |     5u32
@@ -12,5 +18,5 @@ error: could not find defining uses
 LL | existential type Cmp<T>: 'static;
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-error: aborting due to 2 previous errors
+error: aborting due to 3 previous errors
 
diff --git a/src/test/ui/existential_types/generic_not_used.rs b/src/test/ui/existential_types/generic_not_used.rs
index bfe7b8c4a1d..054e6f5f2ad 100644
--- a/src/test/ui/existential_types/generic_not_used.rs
+++ b/src/test/ui/existential_types/generic_not_used.rs
@@ -3,6 +3,7 @@
 fn main() {}
 
 existential type WrongGeneric<T: 'static>: 'static;
+//~^ ERROR: at least one trait must be specified
 
 fn wrong_generic<U: 'static, V: 'static>(_: U, v: V) -> WrongGeneric<U> {
 //~^ ERROR type parameter `V` is part of concrete type but not used in parameter list
diff --git a/src/test/ui/existential_types/generic_not_used.stderr b/src/test/ui/existential_types/generic_not_used.stderr
index 1ae4ab65929..4bce35ea09d 100644
--- a/src/test/ui/existential_types/generic_not_used.stderr
+++ b/src/test/ui/existential_types/generic_not_used.stderr
@@ -1,5 +1,11 @@
+error: at least one trait must be specified
+  --> $DIR/generic_not_used.rs:5:1
+   |
+LL | existential type WrongGeneric<T: 'static>: 'static;
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
 error: type parameter `V` is part of concrete type but not used in parameter list for existential type
-  --> $DIR/generic_not_used.rs:7:73
+  --> $DIR/generic_not_used.rs:8:73
    |
 LL |   fn wrong_generic<U: 'static, V: 'static>(_: U, v: V) -> WrongGeneric<U> {
    |  _________________________________________________________________________^
@@ -8,5 +14,5 @@ LL | |     v
 LL | | }
    | |_^
 
-error: aborting due to previous error
+error: aborting due to 2 previous errors
 
diff --git a/src/test/ui/existential_types/generic_type_does_not_live_long_enough.rs b/src/test/ui/existential_types/generic_type_does_not_live_long_enough.rs
index 02bb151ccb6..d9eedd6dca7 100644
--- a/src/test/ui/existential_types/generic_type_does_not_live_long_enough.rs
+++ b/src/test/ui/existential_types/generic_type_does_not_live_long_enough.rs
@@ -8,6 +8,7 @@ fn main() {
 
 existential type WrongGeneric<T>: 'static;
 //~^ ERROR the parameter type `T` may not live long enough
+//~^^ ERROR: at least one trait must be specified
 
 fn wrong_generic<T>(t: T) -> WrongGeneric<T> {
     t
diff --git a/src/test/ui/existential_types/generic_type_does_not_live_long_enough.stderr b/src/test/ui/existential_types/generic_type_does_not_live_long_enough.stderr
index 002acc41553..1e4c49f3f31 100644
--- a/src/test/ui/existential_types/generic_type_does_not_live_long_enough.stderr
+++ b/src/test/ui/existential_types/generic_type_does_not_live_long_enough.stderr
@@ -1,3 +1,9 @@
+error: at least one trait must be specified
+  --> $DIR/generic_type_does_not_live_long_enough.rs:9:1
+   |
+LL | existential type WrongGeneric<T>: 'static;
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
 error[E0308]: mismatched types
   --> $DIR/generic_type_does_not_live_long_enough.rs:6:18
    |
@@ -22,7 +28,7 @@ note: ...so that the type `T` will meet its required lifetime bounds
 LL | existential type WrongGeneric<T>: 'static;
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-error: aborting due to 2 previous errors
+error: aborting due to 3 previous errors
 
 Some errors have detailed explanations: E0308, E0310.
 For more information about an error, try `rustc --explain E0308`.
diff --git a/src/test/ui/existential_types/generic_underconstrained.rs b/src/test/ui/existential_types/generic_underconstrained.rs
index 967faca067c..cc0db893c6a 100644
--- a/src/test/ui/existential_types/generic_underconstrained.rs
+++ b/src/test/ui/existential_types/generic_underconstrained.rs
@@ -4,6 +4,7 @@ fn main() {}
 
 trait Trait {}
 existential type Underconstrained<T: Trait>: 'static; //~ ERROR the trait bound `T: Trait`
+//~^ ERROR: at least one trait must be specified
 
 // no `Trait` bound
 fn underconstrain<T>(_: T) -> Underconstrained<T> {
diff --git a/src/test/ui/existential_types/generic_underconstrained.stderr b/src/test/ui/existential_types/generic_underconstrained.stderr
index 8551a939e8e..d5e9ecc1abe 100644
--- a/src/test/ui/existential_types/generic_underconstrained.stderr
+++ b/src/test/ui/existential_types/generic_underconstrained.stderr
@@ -1,3 +1,9 @@
+error: at least one trait must be specified
+  --> $DIR/generic_underconstrained.rs:6:1
+   |
+LL | existential type Underconstrained<T: Trait>: 'static;
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
 error[E0277]: the trait bound `T: Trait` is not satisfied
   --> $DIR/generic_underconstrained.rs:6:1
    |
@@ -7,6 +13,6 @@ LL | existential type Underconstrained<T: Trait>: 'static;
    = help: consider adding a `where T: Trait` bound
    = note: the return type of a function must have a statically known size
 
-error: aborting due to previous error
+error: aborting due to 2 previous errors
 
 For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/existential_types/generic_underconstrained2.rs b/src/test/ui/existential_types/generic_underconstrained2.rs
index 98d9da832cf..c6263eacd53 100644
--- a/src/test/ui/existential_types/generic_underconstrained2.rs
+++ b/src/test/ui/existential_types/generic_underconstrained2.rs
@@ -4,6 +4,7 @@ fn main() {}
 
 existential type Underconstrained<T: std::fmt::Debug>: 'static;
 //~^ ERROR `U` doesn't implement `std::fmt::Debug`
+//~^^ ERROR: at least one trait must be specified
 
 // not a defining use, because it doesn't define *all* possible generics
 fn underconstrained<U>(_: U) -> Underconstrained<U> {
@@ -12,6 +13,7 @@ fn underconstrained<U>(_: U) -> Underconstrained<U> {
 
 existential type Underconstrained2<T: std::fmt::Debug>: 'static;
 //~^ ERROR `V` doesn't implement `std::fmt::Debug`
+//~^^ ERROR: at least one trait must be specified
 
 // not a defining use, because it doesn't define *all* possible generics
 fn underconstrained2<U, V>(_: U, _: V) -> Underconstrained2<V> {
diff --git a/src/test/ui/existential_types/generic_underconstrained2.stderr b/src/test/ui/existential_types/generic_underconstrained2.stderr
index c7b6d6ade55..df726dde429 100644
--- a/src/test/ui/existential_types/generic_underconstrained2.stderr
+++ b/src/test/ui/existential_types/generic_underconstrained2.stderr
@@ -1,3 +1,15 @@
+error: at least one trait must be specified
+  --> $DIR/generic_underconstrained2.rs:5:1
+   |
+LL | existential type Underconstrained<T: std::fmt::Debug>: 'static;
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: at least one trait must be specified
+  --> $DIR/generic_underconstrained2.rs:14:1
+   |
+LL | existential type Underconstrained2<T: std::fmt::Debug>: 'static;
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
 error[E0277]: `U` doesn't implement `std::fmt::Debug`
   --> $DIR/generic_underconstrained2.rs:5:1
    |
@@ -9,7 +21,7 @@ LL | existential type Underconstrained<T: std::fmt::Debug>: 'static;
    = note: the return type of a function must have a statically known size
 
 error[E0277]: `V` doesn't implement `std::fmt::Debug`
-  --> $DIR/generic_underconstrained2.rs:13:1
+  --> $DIR/generic_underconstrained2.rs:14:1
    |
 LL | existential type Underconstrained2<T: std::fmt::Debug>: 'static;
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `V` cannot be formatted using `{:?}` because it doesn't implement `std::fmt::Debug`
@@ -18,6 +30,6 @@ LL | existential type Underconstrained2<T: std::fmt::Debug>: 'static;
    = help: consider adding a `where V: std::fmt::Debug` bound
    = note: the return type of a function must have a statically known size
 
-error: aborting due to 2 previous errors
+error: aborting due to 4 previous errors
 
 For more information about this error, try `rustc --explain E0277`.
diff --git a/src/test/ui/existential_types/unused_generic_param.rs b/src/test/ui/existential_types/unused_generic_param.rs
index 7af65087881..5455b39f4cb 100644
--- a/src/test/ui/existential_types/unused_generic_param.rs
+++ b/src/test/ui/existential_types/unused_generic_param.rs
@@ -1,18 +1,17 @@
-// compile-pass
 #![feature(existential_type)]
 
 fn main() {
 }
 
-// test that unused generic parameters are ok
 existential type PartiallyDefined<T>: 'static;
+//~^ ERROR: at least one trait must be specified
 
 fn partially_defined<T: std::fmt::Debug>(_: T) -> PartiallyDefined<T> {
     4u32
 }
 
-// test that unused generic parameters are ok
 existential type PartiallyDefined2<T>: 'static;
+//~^ ERROR: at least one trait must be specified
 
 fn partially_defined2<T: std::fmt::Debug>(_: T) -> PartiallyDefined2<T> {
     4u32
diff --git a/src/test/ui/existential_types/unused_generic_param.stderr b/src/test/ui/existential_types/unused_generic_param.stderr
new file mode 100644
index 00000000000..8c563e93ae5
--- /dev/null
+++ b/src/test/ui/existential_types/unused_generic_param.stderr
@@ -0,0 +1,14 @@
+error: at least one trait must be specified
+  --> $DIR/unused_generic_param.rs:6:1
+   |
+LL | existential type PartiallyDefined<T>: 'static;
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: at least one trait must be specified
+  --> $DIR/unused_generic_param.rs:13:1
+   |
+LL | existential type PartiallyDefined2<T>: 'static;
+   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+error: aborting due to 2 previous errors
+