Add failing test for projections used as const generic
This commit is contained in:
parent
b7463e8bdb
commit
2d5d692053
20
src/test/ui/const-generics/projection-as-arg-const.rs
Normal file
20
src/test/ui/const-generics/projection-as-arg-const.rs
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
// This is currently not possible to use projections as const generics.
|
||||||
|
// More information about this available here:
|
||||||
|
// https://github.com/rust-lang/rust/pull/104443#discussion_r1029375633
|
||||||
|
|
||||||
|
pub trait Identity {
|
||||||
|
type Identity;
|
||||||
|
}
|
||||||
|
|
||||||
|
impl<T> Identity for T {
|
||||||
|
type Identity = Self;
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn foo<const X: <i32 as Identity>::Identity>() {
|
||||||
|
//~^ ERROR
|
||||||
|
assert!(X == 12);
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
foo::<12>();
|
||||||
|
}
|
11
src/test/ui/const-generics/projection-as-arg-const.stderr
Normal file
11
src/test/ui/const-generics/projection-as-arg-const.stderr
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
error: `<i32 as Identity>::Identity` is forbidden as the type of a const generic parameter
|
||||||
|
--> $DIR/projection-as-arg-const.rs:13:21
|
||||||
|
|
|
||||||
|
LL | pub fn foo<const X: <i32 as Identity>::Identity>() {
|
||||||
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
||||||
|
= note: the only supported types are integers, `bool` and `char`
|
||||||
|
= help: more complex types are supported with `#![feature(adt_const_params)]`
|
||||||
|
|
||||||
|
error: aborting due to previous error
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user