about summary refs log tree commit diff
path: root/src/test/ui/resolve
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/resolve')
-rw-r--r--src/test/ui/resolve/auxiliary/issue-30535.rs5
-rw-r--r--src/test/ui/resolve/issue-30535.rs9
-rw-r--r--src/test/ui/resolve/issue-30535.stderr12
-rw-r--r--src/test/ui/resolve/issue-39559-2.rs18
-rw-r--r--src/test/ui/resolve/issue-39559-2.stderr19
-rw-r--r--src/test/ui/resolve/issue-39559.rs19
-rw-r--r--src/test/ui/resolve/issue-39559.stderr11
-rw-r--r--src/test/ui/resolve/resolve-primitive-fallback.rs2
8 files changed, 94 insertions, 1 deletions
diff --git a/src/test/ui/resolve/auxiliary/issue-30535.rs b/src/test/ui/resolve/auxiliary/issue-30535.rs
new file mode 100644
index 00000000000..3608d4a2f14
--- /dev/null
+++ b/src/test/ui/resolve/auxiliary/issue-30535.rs
@@ -0,0 +1,5 @@
+#![crate_type="lib"]
+
+pub enum Foo {
+    FooV { data: () }
+}
diff --git a/src/test/ui/resolve/issue-30535.rs b/src/test/ui/resolve/issue-30535.rs
new file mode 100644
index 00000000000..d48f00d5aca
--- /dev/null
+++ b/src/test/ui/resolve/issue-30535.rs
@@ -0,0 +1,9 @@
+// aux-build:issue-30535.rs
+
+extern crate issue_30535 as foo;
+
+fn bar(
+    _: foo::Foo::FooV //~ ERROR expected type, found variant `foo::Foo::FooV`
+) {}
+
+fn main() {}
diff --git a/src/test/ui/resolve/issue-30535.stderr b/src/test/ui/resolve/issue-30535.stderr
new file mode 100644
index 00000000000..e3692934b62
--- /dev/null
+++ b/src/test/ui/resolve/issue-30535.stderr
@@ -0,0 +1,12 @@
+error[E0573]: expected type, found variant `foo::Foo::FooV`
+  --> $DIR/issue-30535.rs:6:8
+   |
+LL |     _: foo::Foo::FooV
+   |        ^^^^^^^^^^^^^^
+   |        |
+   |        not a type
+   |        help: try using the variant's enum: `foo::Foo`
+
+error: aborting due to previous error
+
+For more information about this error, try `rustc --explain E0573`.
diff --git a/src/test/ui/resolve/issue-39559-2.rs b/src/test/ui/resolve/issue-39559-2.rs
new file mode 100644
index 00000000000..07d3a82b1ed
--- /dev/null
+++ b/src/test/ui/resolve/issue-39559-2.rs
@@ -0,0 +1,18 @@
+trait Dim {
+    fn dim() -> usize;
+}
+
+enum Dim3 {}
+
+impl Dim for Dim3 {
+    fn dim() -> usize {
+        3
+    }
+}
+
+fn main() {
+    let array: [usize; Dim3::dim()]
+    //~^ ERROR E0015
+        = [0; Dim3::dim()];
+        //~^ ERROR E0015
+}
diff --git a/src/test/ui/resolve/issue-39559-2.stderr b/src/test/ui/resolve/issue-39559-2.stderr
new file mode 100644
index 00000000000..ea27e7bd250
--- /dev/null
+++ b/src/test/ui/resolve/issue-39559-2.stderr
@@ -0,0 +1,19 @@
+error[E0015]: cannot call non-const fn `<Dim3 as Dim>::dim` in constants
+  --> $DIR/issue-39559-2.rs:14:24
+   |
+LL |     let array: [usize; Dim3::dim()]
+   |                        ^^^^^^^^^^^
+   |
+   = note: calls in constants are limited to constant functions, tuple structs and tuple variants
+
+error[E0015]: cannot call non-const fn `<Dim3 as Dim>::dim` in constants
+  --> $DIR/issue-39559-2.rs:16:15
+   |
+LL |         = [0; Dim3::dim()];
+   |               ^^^^^^^^^^^
+   |
+   = note: calls in constants are limited to constant functions, tuple structs and tuple variants
+
+error: aborting due to 2 previous errors
+
+For more information about this error, try `rustc --explain E0015`.
diff --git a/src/test/ui/resolve/issue-39559.rs b/src/test/ui/resolve/issue-39559.rs
new file mode 100644
index 00000000000..58d25940733
--- /dev/null
+++ b/src/test/ui/resolve/issue-39559.rs
@@ -0,0 +1,19 @@
+trait Dim {
+    fn dim() -> usize;
+}
+
+enum Dim3 {}
+
+impl Dim for Dim3 {
+    fn dim() -> usize {
+        3
+    }
+}
+
+pub struct Vector<T, D: Dim> {
+    entries: [T; D::dim()],
+    //~^ ERROR generic parameters may not be used
+    _dummy: D,
+}
+
+fn main() {}
diff --git a/src/test/ui/resolve/issue-39559.stderr b/src/test/ui/resolve/issue-39559.stderr
new file mode 100644
index 00000000000..7626f827fc5
--- /dev/null
+++ b/src/test/ui/resolve/issue-39559.stderr
@@ -0,0 +1,11 @@
+error: generic parameters may not be used in const operations
+  --> $DIR/issue-39559.rs:14:18
+   |
+LL |     entries: [T; D::dim()],
+   |                  ^^^^^^ cannot perform const operation using `D`
+   |
+   = note: type parameters may not be used in const expressions
+   = help: use `#![feature(generic_const_exprs)]` to allow generic const expressions
+
+error: aborting due to previous error
+
diff --git a/src/test/ui/resolve/resolve-primitive-fallback.rs b/src/test/ui/resolve/resolve-primitive-fallback.rs
index 992bcd7977f..05cabd9e3cd 100644
--- a/src/test/ui/resolve/resolve-primitive-fallback.rs
+++ b/src/test/ui/resolve/resolve-primitive-fallback.rs
@@ -2,7 +2,7 @@ fn main() {
     // Make sure primitive type fallback doesn't work in value namespace
     std::mem::size_of(u16);
     //~^ ERROR expected value, found builtin type `u16`
-    //~| ERROR this function takes 0 arguments but 1 argument was supplied
+    //~| ERROR function takes 0 arguments but 1 argument was supplied
 
     // Make sure primitive type fallback doesn't work with global paths
     let _: ::u8;