about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/test/ui/parser/const-param-decl-on-type-instead-of-impl.rs9
-rw-r--r--src/test/ui/parser/const-param-decl-on-type-instead-of-impl.stderr33
2 files changed, 38 insertions, 4 deletions
diff --git a/src/test/ui/parser/const-param-decl-on-type-instead-of-impl.rs b/src/test/ui/parser/const-param-decl-on-type-instead-of-impl.rs
index ecdfce1e19e..53e3c6f9605 100644
--- a/src/test/ui/parser/const-param-decl-on-type-instead-of-impl.rs
+++ b/src/test/ui/parser/const-param-decl-on-type-instead-of-impl.rs
@@ -4,3 +4,12 @@ impl NInts<const N: usize> {} //~ ERROR unexpected `const` parameter declaration
 fn main() {
     let _: () = 42; //~ ERROR mismatched types
 }
+
+fn banana(a: <T<const N: usize>>::BAR) {}
+//~^ ERROR unexpected `const` parameter declaration
+//~| ERROR cannot find type `T` in this scope
+fn chaenomeles() {
+    path::path::Struct::<const N: usize>()
+    //~^ ERROR unexpected `const` parameter declaration
+    //~| ERROR failed to resolve: use of undeclared crate or module `path`
+}
diff --git a/src/test/ui/parser/const-param-decl-on-type-instead-of-impl.stderr b/src/test/ui/parser/const-param-decl-on-type-instead-of-impl.stderr
index 07c7c69f8d6..96885d11ee0 100644
--- a/src/test/ui/parser/const-param-decl-on-type-instead-of-impl.stderr
+++ b/src/test/ui/parser/const-param-decl-on-type-instead-of-impl.stderr
@@ -1,14 +1,38 @@
 error: unexpected `const` parameter declaration
-  --> $DIR/const-param-decl-on-type-instead-of-impl.rs:2:18
+  --> $DIR/const-param-decl-on-type-instead-of-impl.rs:2:12
    |
 LL | impl NInts<const N: usize> {}
-   |                  ^ expected a `const` expression, not a parameter declaration
+   |            ^^^^^^^^^^^^^^ expected a `const` expression, not a parameter declaration
    |
 help: `const` parameters must be declared for the `impl`
    |
 LL | impl<const N: usize> NInts<N> {}
    |     ++++++++++++++++       ~
 
+error: unexpected `const` parameter declaration
+  --> $DIR/const-param-decl-on-type-instead-of-impl.rs:8:17
+   |
+LL | fn banana(a: <T<const N: usize>>::BAR) {}
+   |                 ^^^^^^^^^^^^^^ expected a `const` expression, not a parameter declaration
+
+error: unexpected `const` parameter declaration
+  --> $DIR/const-param-decl-on-type-instead-of-impl.rs:12:26
+   |
+LL |     path::path::Struct::<const N: usize>()
+   |                          ^^^^^^^^^^^^^^ expected a `const` expression, not a parameter declaration
+
+error[E0433]: failed to resolve: use of undeclared crate or module `path`
+  --> $DIR/const-param-decl-on-type-instead-of-impl.rs:12:5
+   |
+LL |     path::path::Struct::<const N: usize>()
+   |     ^^^^ use of undeclared crate or module `path`
+
+error[E0412]: cannot find type `T` in this scope
+  --> $DIR/const-param-decl-on-type-instead-of-impl.rs:8:15
+   |
+LL | fn banana(a: <T<const N: usize>>::BAR) {}
+   |               ^ not found in this scope
+
 error[E0308]: mismatched types
   --> $DIR/const-param-decl-on-type-instead-of-impl.rs:5:17
    |
@@ -17,6 +41,7 @@ LL |     let _: () = 42;
    |            |
    |            expected due to this
 
-error: aborting due to 2 previous errors
+error: aborting due to 6 previous errors
 
-For more information about this error, try `rustc --explain E0308`.
+Some errors have detailed explanations: E0308, E0412, E0433.
+For more information about an error, try `rustc --explain E0308`.