[gcc/devel/rust/master] const generics: Make sure const generic types are visited properly in all contexts

Thomas Schwinge tschwinge@gcc.gnu.org
Mon Sep 26 11:04:05 GMT 2022


https://gcc.gnu.org/g:5a019b1e71affaf474e2878e51fcc5c7d1068d5b

commit 5a019b1e71affaf474e2878e51fcc5c7d1068d5b
Author: Arthur Cohen <arthur.cohen@embecosm.com>
Date:   Mon Sep 12 15:53:01 2022 +0200

    const generics: Make sure const generic types are visited properly in
    all contexts

Diff:
---
 gcc/testsuite/rust/compile/const_generics_7.rs | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)

diff --git a/gcc/testsuite/rust/compile/const_generics_7.rs b/gcc/testsuite/rust/compile/const_generics_7.rs
new file mode 100644
index 00000000000..2c128db92ea
--- /dev/null
+++ b/gcc/testsuite/rust/compile/const_generics_7.rs
@@ -0,0 +1,17 @@
+struct S<const N: usize>;
+
+pub fn foo<const N: FooBar>() {} // { dg-error "failed to resolve" }
+type Foo<const N: FooBar> = S<N>; // { dg-error "failed to resolve" }
+struct Foo2<const N: FooBar>; // { dg-error "failed to resolve" }
+enum Foo3<const N: FooBar> { // { dg-error "failed to resolve" }
+    Foo,
+    Bar,
+}
+union Foo4<const N: FooBar> { // { dg-error "failed to resolve" }
+    a: usize,
+    b: i32,
+}
+trait Fooable<const N: FooBar> {} // { dg-error "failed to resolve" }
+
+trait Traitable {}
+impl<const N: FooBar> Traitable for Foo2<N> {} // { dg-error "failed to resolve" }


More information about the Gcc-cvs mailing list