diff options
Diffstat (limited to 'tests/ui/issues/issue-5997-outer-generic-parameter')
5 files changed, 61 insertions, 0 deletions
diff --git a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-enum.rs b/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-enum.rs new file mode 100644 index 00000000000..0b1857ae3df --- /dev/null +++ b/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-enum.rs @@ -0,0 +1,10 @@ +fn f<Z>() -> bool { + enum E { V(Z) } + //~^ ERROR can't use generic parameters from outer item + true +} + +fn main() { + let b = f::<isize>(); + assert!(b); +} diff --git a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-enum.stderr b/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-enum.stderr new file mode 100644 index 00000000000..c0b3cd6de66 --- /dev/null +++ b/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-enum.stderr @@ -0,0 +1,13 @@ +error[E0401]: can't use generic parameters from outer item + --> $DIR/issue-5997-enum.rs:2:16 + | +LL | fn f<Z>() -> bool { + | - type parameter from outer item +LL | enum E { V(Z) } + | - ^ use of generic parameter from outer item + | | + | help: try introducing a local generic parameter here: `<Z>` + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0401`. diff --git a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.rs b/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.rs new file mode 100644 index 00000000000..19d994b0dfb --- /dev/null +++ b/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.rs @@ -0,0 +1,10 @@ +fn f<T>() -> bool { + struct S(T); //~ ERROR can't use generic parameters from outer item + + true +} + +fn main() { + let b = f::<isize>(); + assert!(b); +} diff --git a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.stderr b/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.stderr new file mode 100644 index 00000000000..670a54894b5 --- /dev/null +++ b/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997-struct.stderr @@ -0,0 +1,13 @@ +error[E0401]: can't use generic parameters from outer item + --> $DIR/issue-5997-struct.rs:2:14 + | +LL | fn f<T>() -> bool { + | - type parameter from outer item +LL | struct S(T); + | -^ use of generic parameter from outer item + | | + | help: try introducing a local generic parameter here: `<T>` + +error: aborting due to 1 previous error + +For more information about this error, try `rustc --explain E0401`. diff --git a/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997.rs b/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997.rs new file mode 100644 index 00000000000..145e3a7928d --- /dev/null +++ b/tests/ui/issues/issue-5997-outer-generic-parameter/issue-5997.rs @@ -0,0 +1,15 @@ +// run-pass +#![allow(dead_code)] + +fn f<T>() -> bool { + enum E<T> { V(T) } + + struct S<T>(T); + + true +} + +fn main() { + let b = f::<isize>(); + assert!(b); +} |
