diff options
| author | Bastian Kauschke <bastian_kauschke@hotmail.de> | 2020-12-02 14:33:26 +0100 |
|---|---|---|
| committer | Bastian Kauschke <bastian_kauschke@hotmail.de> | 2020-12-02 15:31:27 +0100 |
| commit | 71d75503506880efa89c902465cdcb205d0eb9e5 (patch) | |
| tree | d654ca21cc5a6c58285bdfe628b8191dd3c5c06b /src/test/ui/const-generics | |
| parent | 92e4fb073245a42559e357a3002c596b8b38edf6 (diff) | |
| download | rust-71d75503506880efa89c902465cdcb205d0eb9e5.tar.gz rust-71d75503506880efa89c902465cdcb205d0eb9e5.zip | |
const_evaluatable_checked: fix occurs check
Diffstat (limited to 'src/test/ui/const-generics')
| -rw-r--r-- | src/test/ui/const-generics/occurs-check/unused-substs-5.rs | 20 | ||||
| -rw-r--r-- | src/test/ui/const-generics/occurs-check/unused-substs-5.stderr | 12 |
2 files changed, 32 insertions, 0 deletions
diff --git a/src/test/ui/const-generics/occurs-check/unused-substs-5.rs b/src/test/ui/const-generics/occurs-check/unused-substs-5.rs new file mode 100644 index 00000000000..e5d487d89b9 --- /dev/null +++ b/src/test/ui/const-generics/occurs-check/unused-substs-5.rs @@ -0,0 +1,20 @@ +#![feature(const_generics, const_evaluatable_checked)] +#![allow(incomplete_features)] + +// `N + 1` also depends on `T` here even if it doesn't use it. +fn q<T, const N: usize>(_: T) -> [u8; N + 1] { + todo!() +} + +fn supplier<T>() -> T { + todo!() +} + +fn catch_me<const N: usize>() where [u8; N + 1]: Default { + let mut x = supplier(); + x = q::<_, N>(x); //~ ERROR mismatched types +} + +fn main() { + catch_me::<3>(); +} diff --git a/src/test/ui/const-generics/occurs-check/unused-substs-5.stderr b/src/test/ui/const-generics/occurs-check/unused-substs-5.stderr new file mode 100644 index 00000000000..239569dab09 --- /dev/null +++ b/src/test/ui/const-generics/occurs-check/unused-substs-5.stderr @@ -0,0 +1,12 @@ +error[E0308]: mismatched types + --> $DIR/unused-substs-5.rs:15:9 + | +LL | x = q::<_, N>(x); + | ^^^^^^^^^^^^ + | | + | cyclic type of infinite size + | help: try using a conversion method: `q::<_, N>(x).to_vec()` + +error: aborting due to previous error + +For more information about this error, try `rustc --explain E0308`. |
