Add another test for const parameter (non) hygiene.
This commit is contained in:
parent
8876b3b9b0
commit
0fb9295e12
32
src/test/ui/hygiene/issue-61574-const-parameters.rs
Normal file
32
src/test/ui/hygiene/issue-61574-const-parameters.rs
Normal file
@ -0,0 +1,32 @@
|
||||
// A more comprehensive test that const parameters have correctly implemented
|
||||
// hygiene
|
||||
|
||||
// check-pass
|
||||
|
||||
#![feature(const_generics)]
|
||||
|
||||
use std::ops::Add;
|
||||
|
||||
struct VectorLike<T, const SIZE: usize>([T; {SIZE}]);
|
||||
|
||||
macro_rules! impl_operator_overload {
|
||||
($trait_ident:ident, $method_ident:ident) => {
|
||||
|
||||
impl<T, const SIZE: usize> $trait_ident for VectorLike<T, {SIZE}>
|
||||
where
|
||||
T: $trait_ident,
|
||||
{
|
||||
type Output = VectorLike<T, {SIZE}>;
|
||||
|
||||
fn $method_ident(self, _: VectorLike<T, {SIZE}>) -> VectorLike<T, {SIZE}> {
|
||||
let _ = SIZE;
|
||||
unimplemented!()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
impl_operator_overload!(Add, add);
|
||||
|
||||
fn main() {}
|
6
src/test/ui/hygiene/issue-61574-const-parameters.stderr
Normal file
6
src/test/ui/hygiene/issue-61574-const-parameters.stderr
Normal file
@ -0,0 +1,6 @@
|
||||
warning: the feature `const_generics` is incomplete and may cause the compiler to crash
|
||||
--> $DIR/issue-61574-const-parameters.rs:6:12
|
||||
|
|
||||
LL | #![feature(const_generics)]
|
||||
| ^^^^^^^^^^^^^^
|
||||
|
Loading…
x
Reference in New Issue
Block a user