summary refs log tree commit diff
path: root/src/test
diff options
context:
space:
mode:
authorvarkor <github@varkor.com>2019-05-10 20:53:35 +0100
committerPietro Albini <pietro@pietroalbini.org>2019-05-20 11:44:35 +0200
commitce90a9e5ee7206b65cedc5afb5e723a6aeb12f33 (patch)
treeb4366b2f9ea05f70e569bc1b1b36d82ea84cc84a /src/test
parent5ba1895d3ffec561095af747095f0bec7a22d407 (diff)
downloadrust-ce90a9e5ee7206b65cedc5afb5e723a6aeb12f33.tar.gz
rust-ce90a9e5ee7206b65cedc5afb5e723a6aeb12f33.zip
Add a test for invalid const arguments
Diffstat (limited to 'src/test')
-rw-r--r--src/test/ui/const-generics/invalid-const-arg-for-type-param.rs9
-rw-r--r--src/test/ui/const-generics/invalid-const-arg-for-type-param.stderr25
2 files changed, 34 insertions, 0 deletions
diff --git a/src/test/ui/const-generics/invalid-const-arg-for-type-param.rs b/src/test/ui/const-generics/invalid-const-arg-for-type-param.rs
new file mode 100644
index 00000000000..b069cd89680
--- /dev/null
+++ b/src/test/ui/const-generics/invalid-const-arg-for-type-param.rs
@@ -0,0 +1,9 @@
+use std::convert::TryInto;
+
+struct S;
+
+fn main() {
+    let _: u32 = 5i32.try_into::<32>().unwrap(); //~ ERROR wrong number of const arguments
+    S.f::<0>(); //~ ERROR no method named `f`
+    S::<0>; //~ ERROR  wrong number of const arguments
+}
diff --git a/src/test/ui/const-generics/invalid-const-arg-for-type-param.stderr b/src/test/ui/const-generics/invalid-const-arg-for-type-param.stderr
new file mode 100644
index 00000000000..8f3f91651ed
--- /dev/null
+++ b/src/test/ui/const-generics/invalid-const-arg-for-type-param.stderr
@@ -0,0 +1,25 @@
+error[E0107]: wrong number of const arguments: expected 0, found 1
+  --> $DIR/invalid-const-arg-for-type-param.rs:6:34
+   |
+LL |     let _: u32 = 5i32.try_into::<32>().unwrap();
+   |                                  ^^ unexpected const argument
+
+error[E0599]: no method named `f` found for type `S` in the current scope
+  --> $DIR/invalid-const-arg-for-type-param.rs:7:7
+   |
+LL | struct S;
+   | --------- method `f` not found for this
+...
+LL |     S.f::<0>();
+   |       ^
+
+error[E0107]: wrong number of const arguments: expected 0, found 1
+  --> $DIR/invalid-const-arg-for-type-param.rs:8:9
+   |
+LL |     S::<0>;
+   |         ^ unexpected const argument
+
+error: aborting due to 3 previous errors
+
+Some errors have detailed explanations: E0107, E0599.
+For more information about an error, try `rustc --explain E0107`.