aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPhilip Herron <herron.philip@googlemail.com>2024-02-03 16:02:36 +0000
committerPhilip Herron <philip.herron@embecosm.com>2024-02-03 23:04:43 +0000
commit74c85f36942cd7c4115a5e20f81797aa089bed7e (patch)
tree80ba8c70ab826a890c4970f98738a81cd0c98c80 /gcc
parent838eab4a46381916a66877ca99a327264d838d54 (diff)
downloadgcc-74c85f36942cd7c4115a5e20f81797aa089bed7e.zip
gcc-74c85f36942cd7c4115a5e20f81797aa089bed7e.tar.gz
gcc-74c85f36942cd7c4115a5e20f81797aa089bed7e.tar.bz2
gccrs: add test cases to prove type inference is working
Fixes #2772 gcc/testsuite/ChangeLog: * rust/compile/issue-2772-1.rs: New test. * rust/compile/issue-2772-2.rs: New test.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/testsuite/rust/compile/issue-2772-1.rs20
-rw-r--r--gcc/testsuite/rust/compile/issue-2772-2.rs20
2 files changed, 40 insertions, 0 deletions
diff --git a/gcc/testsuite/rust/compile/issue-2772-1.rs b/gcc/testsuite/rust/compile/issue-2772-1.rs
new file mode 100644
index 0000000..69977db
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-2772-1.rs
@@ -0,0 +1,20 @@
+// { dg-options "-w" }
+#[lang = "sized"]
+pub trait Sized {}
+
+struct Pair<'a, T, U>
+where
+ T: 'a,
+ U: 'a,
+{
+ left: T,
+ right: U,
+}
+
+pub fn test<'a>() {
+ let a: i32 = 50;
+ let x = Pair {
+ left: &&a,
+ right: &a,
+ };
+}
diff --git a/gcc/testsuite/rust/compile/issue-2772-2.rs b/gcc/testsuite/rust/compile/issue-2772-2.rs
new file mode 100644
index 0000000..b05f2b1
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-2772-2.rs
@@ -0,0 +1,20 @@
+// { dg-options "-w" }
+#[lang = "sized"]
+pub trait Sized {}
+
+struct Pair<'a, T, U>
+where
+ T: 'a,
+ U: 'a,
+{
+ left: T,
+ right: U,
+}
+
+pub fn test<'a>() {
+ let a: i32 = 50;
+ let x = Pair::<&'_ _, &'_ _> {
+ left: &&a,
+ right: &a,
+ };
+}