From a08bccb3c142fb98193eed202dbdde85386dd91a Mon Sep 17 00:00:00 2001 From: Bastian Kauschke Date: Sat, 11 Apr 2020 18:05:02 +0200 Subject: handle ByRef in relate --- src/test/ui/const-generics/different_byref.rs | 11 +++++++++++ src/test/ui/const-generics/different_byref.stderr | 20 ++++++++++++++++++++ src/test/ui/const-generics/issues/issue-68615-adt.rs | 11 +++++++++++ .../ui/const-generics/issues/issue-68615-array.rs | 11 +++++++++++ 4 files changed, 53 insertions(+) create mode 100644 src/test/ui/const-generics/different_byref.rs create mode 100644 src/test/ui/const-generics/different_byref.stderr create mode 100644 src/test/ui/const-generics/issues/issue-68615-adt.rs create mode 100644 src/test/ui/const-generics/issues/issue-68615-array.rs (limited to 'src/test') diff --git a/src/test/ui/const-generics/different_byref.rs b/src/test/ui/const-generics/different_byref.rs new file mode 100644 index 00000000000..c52a5b8061d --- /dev/null +++ b/src/test/ui/const-generics/different_byref.rs @@ -0,0 +1,11 @@ +#![feature(const_generics)] +//~^ WARN the feature `const_generics` is incomplete and may cause the compiler to crash + +struct Const {} + +fn main() { + let mut x = Const::<{ [3] }> {}; + x = Const::<{ [4] }> {}; + //~^ ERROR mismatched types + +} diff --git a/src/test/ui/const-generics/different_byref.stderr b/src/test/ui/const-generics/different_byref.stderr new file mode 100644 index 00000000000..9ea2aace89a --- /dev/null +++ b/src/test/ui/const-generics/different_byref.stderr @@ -0,0 +1,20 @@ +warning: the feature `const_generics` is incomplete and may cause the compiler to crash + --> $DIR/different_byref.rs:1:12 + | +LL | #![feature(const_generics)] + | ^^^^^^^^^^^^^^ + | + = note: `#[warn(incomplete_features)]` on by default + +error[E0308]: mismatched types + --> $DIR/different_byref.rs:8:9 + | +LL | x = Const::<{ [4] }> {}; + | ^^^^^^^^^^^^^^^^^^^ expected `3usize`, found `4usize` + | + = note: expected struct `Const<[3usize]>` + found struct `Const<[4usize]>` + +error: aborting due to previous error; 1 warning emitted + +For more information about this error, try `rustc --explain E0308`. diff --git a/src/test/ui/const-generics/issues/issue-68615-adt.rs b/src/test/ui/const-generics/issues/issue-68615-adt.rs new file mode 100644 index 00000000000..140bb28ec5a --- /dev/null +++ b/src/test/ui/const-generics/issues/issue-68615-adt.rs @@ -0,0 +1,11 @@ +// check-pass +#![feature(const_generics)] +#![allow(incomplete_features)] + +struct Const {} +type MyConst = Const<{ [] }>; + +fn main() { + let _x = Const::<{ [] }> {}; + let _y = MyConst {}; +} diff --git a/src/test/ui/const-generics/issues/issue-68615-array.rs b/src/test/ui/const-generics/issues/issue-68615-array.rs new file mode 100644 index 00000000000..c384bc1e36d --- /dev/null +++ b/src/test/ui/const-generics/issues/issue-68615-array.rs @@ -0,0 +1,11 @@ +// check-pass +#![feature(const_generics)] +#![allow(incomplete_features)] + +struct Foo {} + +type MyFoo = Foo<{ [] }>; + +fn main() { + let _ = Foo::<{ [] }> {}; +} -- cgit 1.4.1-3-g733a5