handle ByRef in relate

This commit is contained in:
Bastian Kauschke 2020-04-11 18:05:02 +02:00
parent 01b3637f6e
commit a08bccb3c1
5 changed files with 87 additions and 2 deletions

View file

@ -0,0 +1,11 @@
#![feature(const_generics)]
//~^ WARN the feature `const_generics` is incomplete and may cause the compiler to crash
struct Const<const V: [usize; 1]> {}
fn main() {
let mut x = Const::<{ [3] }> {};
x = Const::<{ [4] }> {};
//~^ ERROR mismatched types
}

View file

@ -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`.

View file

@ -0,0 +1,11 @@
// check-pass
#![feature(const_generics)]
#![allow(incomplete_features)]
struct Const<const V: [usize; 0]> {}
type MyConst = Const<{ [] }>;
fn main() {
let _x = Const::<{ [] }> {};
let _y = MyConst {};
}

View file

@ -0,0 +1,11 @@
// check-pass
#![feature(const_generics)]
#![allow(incomplete_features)]
struct Foo<const V: [usize; 0] > {}
type MyFoo = Foo<{ [] }>;
fn main() {
let _ = Foo::<{ [] }> {};
}