diff options
| author | Matthew Jasper <mjjasper1@gmail.com> | 2019-07-29 20:04:07 +0100 |
|---|---|---|
| committer | Matthew Jasper <mjjasper1@gmail.com> | 2019-07-29 20:04:07 +0100 |
| commit | 0fb9295e1231d0878ec3cd06811e3e0dc8c7ce4f (patch) | |
| tree | 2025e5e2936fa708302acdd6b037fb8d8c748ed0 | |
| parent | 8876b3b9b0bf652cddf68d9ddcb5b5fa31d829ab (diff) | |
| download | rust-0fb9295e1231d0878ec3cd06811e3e0dc8c7ce4f.tar.gz rust-0fb9295e1231d0878ec3cd06811e3e0dc8c7ce4f.zip | |
Add another test for const parameter (non) hygiene.
| -rw-r--r-- | src/test/ui/hygiene/issue-61574-const-parameters.rs | 32 | ||||
| -rw-r--r-- | src/test/ui/hygiene/issue-61574-const-parameters.stderr | 6 |
2 files changed, 38 insertions, 0 deletions
diff --git a/src/test/ui/hygiene/issue-61574-const-parameters.rs b/src/test/ui/hygiene/issue-61574-const-parameters.rs new file mode 100644 index 00000000000..dcfb42287d5 --- /dev/null +++ b/src/test/ui/hygiene/issue-61574-const-parameters.rs @@ -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() {} diff --git a/src/test/ui/hygiene/issue-61574-const-parameters.stderr b/src/test/ui/hygiene/issue-61574-const-parameters.stderr new file mode 100644 index 00000000000..302b5fde887 --- /dev/null +++ b/src/test/ui/hygiene/issue-61574-const-parameters.stderr @@ -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)] + | ^^^^^^^^^^^^^^ + |
