Add another test for const parameter (non) hygiene.

This commit is contained in:
Matthew Jasper 2019-07-29 20:04:07 +01:00
parent 8876b3b9b0
commit 0fb9295e12
2 changed files with 38 additions and 0 deletions

View 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() {}

View 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)]
| ^^^^^^^^^^^^^^