aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite/rust/compile
diff options
context:
space:
mode:
authorMuhammad Mahad <mahadtxt@gmail.com>2023-08-02 16:21:15 +0500
committerArthur Cohen <arthur.cohen@embecosm.com>2024-01-16 19:00:26 +0100
commit5db4f84f883513ff062f77c7eca5fdceeb58c825 (patch)
tree25adea1b6df97ad3670614a8bb894a7b4b2fdb0b /gcc/testsuite/rust/compile
parent8b1e1faa7f2eec13df511fa76d181337efb14f4d (diff)
downloadgcc-5db4f84f883513ff062f77c7eca5fdceeb58c825.zip
gcc-5db4f84f883513ff062f77c7eca5fdceeb58c825.tar.gz
gcc-5db4f84f883513ff062f77c7eca5fdceeb58c825.tar.bz2
gccrs: [E0308] mismatch types on assignment
This errorcode emits when there are mismatch types between lhs & rhs of assignment operator & refactored message. This error code was used in many test cases, so updated the error comments. gcc/rust/ChangeLog: * typecheck/rust-unify.cc (UnifyRules::emit_type_mismatch): refactored & called error function. gcc/testsuite/ChangeLog: * rust/compile/arrays1.rs: changed comment to pass testcase. * rust/compile/bad_type1.rs: likewise. * rust/compile/bad_type2.rs: likewise. * rust/compile/const_generics_6.rs: likewise. * rust/compile/deadcode_err1.rs: likewise. * rust/compile/deadcode_err2.rs: likewise. * rust/compile/func1.rs: likewise. * rust/compile/func3.rs: likewise. * rust/compile/func4.rs: likewise. * rust/compile/func5.rs: likewise. * rust/compile/generics1.rs: likewise. * rust/compile/generics2.rs: likewise. * rust/compile/generics3.rs: likewise. * rust/compile/implicit_returns_err1.rs: likewise. * rust/compile/implicit_returns_err2.rs: likewise. * rust/compile/implicit_returns_err3.rs: likewise. * rust/compile/implicit_returns_err4.rs: likewise. * rust/compile/issue-1152.rs: likewise. * rust/compile/issue-2477.rs: likewise. * rust/compile/reference1.rs: likewise. * rust/compile/stmt_with_block_err1.rs: likewise. * rust/compile/traits1.rs: likewise. * rust/compile/traits2.rs: likewise. * rust/compile/tuple_mismatch.rs: likewise. * rust/compile/tuple_struct3.rs: likewise. * rust/compile/mismatched-types.rs: New test from rustc. Signed-off-by: Muhammad Mahad <mahadtxt@gmail.com>
Diffstat (limited to 'gcc/testsuite/rust/compile')
-rw-r--r--gcc/testsuite/rust/compile/arrays1.rs2
-rw-r--r--gcc/testsuite/rust/compile/bad_type1.rs2
-rw-r--r--gcc/testsuite/rust/compile/bad_type2.rs2
-rw-r--r--gcc/testsuite/rust/compile/const_generics_6.rs2
-rw-r--r--gcc/testsuite/rust/compile/deadcode_err1.rs2
-rw-r--r--gcc/testsuite/rust/compile/deadcode_err2.rs4
-rw-r--r--gcc/testsuite/rust/compile/func1.rs2
-rw-r--r--gcc/testsuite/rust/compile/func3.rs2
-rw-r--r--gcc/testsuite/rust/compile/func4.rs2
-rw-r--r--gcc/testsuite/rust/compile/func5.rs2
-rw-r--r--gcc/testsuite/rust/compile/generics1.rs2
-rw-r--r--gcc/testsuite/rust/compile/generics2.rs2
-rw-r--r--gcc/testsuite/rust/compile/generics3.rs2
-rw-r--r--gcc/testsuite/rust/compile/implicit_returns_err1.rs2
-rw-r--r--gcc/testsuite/rust/compile/implicit_returns_err2.rs2
-rw-r--r--gcc/testsuite/rust/compile/implicit_returns_err3.rs2
-rw-r--r--gcc/testsuite/rust/compile/implicit_returns_err4.rs2
-rw-r--r--gcc/testsuite/rust/compile/issue-1152.rs4
-rw-r--r--gcc/testsuite/rust/compile/issue-2477.rs2
-rw-r--r--gcc/testsuite/rust/compile/mismatched-types.rs9
-rw-r--r--gcc/testsuite/rust/compile/reference1.rs2
-rw-r--r--gcc/testsuite/rust/compile/stmt_with_block_err1.rs4
-rw-r--r--gcc/testsuite/rust/compile/traits1.rs2
-rw-r--r--gcc/testsuite/rust/compile/traits2.rs4
-rw-r--r--gcc/testsuite/rust/compile/tuple_mismatch.rs2
-rw-r--r--gcc/testsuite/rust/compile/tuple_struct3.rs2
26 files changed, 38 insertions, 29 deletions
diff --git a/gcc/testsuite/rust/compile/arrays1.rs b/gcc/testsuite/rust/compile/arrays1.rs
index 714a6be..2db5667 100644
--- a/gcc/testsuite/rust/compile/arrays1.rs
+++ b/gcc/testsuite/rust/compile/arrays1.rs
@@ -1,4 +1,4 @@
fn main() {
let xs: [i32; 5] = [1, 2, 3, 4, 5];
- let a: bool = xs[0]; // { dg-error "expected .bool. got .i32." }
+ let a: bool = xs[0]; // { dg-error "mismatched types, expected .bool. but got .i32." }
}
diff --git a/gcc/testsuite/rust/compile/bad_type1.rs b/gcc/testsuite/rust/compile/bad_type1.rs
index 93de439..88ab13b 100644
--- a/gcc/testsuite/rust/compile/bad_type1.rs
+++ b/gcc/testsuite/rust/compile/bad_type1.rs
@@ -1,3 +1,3 @@
fn main() {
- let logical: bool = 123; // { dg-error "expected .bool. got .<integer>." }
+ let logical: bool = 123; // { dg-error "mismatched types, expected .bool. but got .<integer>." }
}
diff --git a/gcc/testsuite/rust/compile/bad_type2.rs b/gcc/testsuite/rust/compile/bad_type2.rs
index e47b8aa..0fe3206 100644
--- a/gcc/testsuite/rust/compile/bad_type2.rs
+++ b/gcc/testsuite/rust/compile/bad_type2.rs
@@ -8,7 +8,7 @@ fn main() {
let mut x;
x = 1;
- x = true; // { dg-error "expected .<integer>. got .bool." }
+ x = true; // { dg-error "mismatched types, expected .<integer>. but got .bool." }
let call_test = test(1);
}
diff --git a/gcc/testsuite/rust/compile/const_generics_6.rs b/gcc/testsuite/rust/compile/const_generics_6.rs
index de26123..b810b95 100644
--- a/gcc/testsuite/rust/compile/const_generics_6.rs
+++ b/gcc/testsuite/rust/compile/const_generics_6.rs
@@ -1,2 +1,2 @@
struct Foo<const N: usize>;
-struct Bar<const N: usize = { 15i32 }>; // { dg-error "expected .usize. got .i32." }
+struct Bar<const N: usize = { 15i32 }>; // { dg-error "mismatched types, expected .usize. but got .i32." }
diff --git a/gcc/testsuite/rust/compile/deadcode_err1.rs b/gcc/testsuite/rust/compile/deadcode_err1.rs
index 1dbe957..e77cef6 100644
--- a/gcc/testsuite/rust/compile/deadcode_err1.rs
+++ b/gcc/testsuite/rust/compile/deadcode_err1.rs
@@ -3,7 +3,7 @@ fn foo() -> i32 {
let mut a = 1; // { dg-warning "unreachable statement" }
a = 1.1; // { dg-warning "unreachable statement" }
- // { dg-error "expected .<integer>. got .<float>." "" { target *-*-* } .-1 }
+ // { dg-error "mismatched types, expected .<integer>. but got .<float>." "" { target *-*-* } .-1 }
}
fn main() {
diff --git a/gcc/testsuite/rust/compile/deadcode_err2.rs b/gcc/testsuite/rust/compile/deadcode_err2.rs
index 8c0eb46..832fe99 100644
--- a/gcc/testsuite/rust/compile/deadcode_err2.rs
+++ b/gcc/testsuite/rust/compile/deadcode_err2.rs
@@ -1,11 +1,11 @@
fn foo() -> i32 {
return 1;
- return 1.5; // { dg-error "expected .i32. got .<float>." }
+ return 1.5; // { dg-error "mismatched types, expected .i32. but got .<float>." }
// { dg-warning "unreachable statement" "" { target *-*-* } .-1 }
}
fn bar() -> i32 {
- return 1.5; // { dg-error "expected .i32. got .<float>." }
+ return 1.5; // { dg-error "mismatched types, expected .i32. but got .<float>." }
return 1;
// { dg-warning "unreachable statement" "" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/rust/compile/func1.rs b/gcc/testsuite/rust/compile/func1.rs
index 6758a38..037d377 100644
--- a/gcc/testsuite/rust/compile/func1.rs
+++ b/gcc/testsuite/rust/compile/func1.rs
@@ -1,5 +1,5 @@
fn test(x: i32) -> bool {
- return x + 1; // { dg-error "expected .bool. got .i32." }
+ return x + 1; // { dg-error "mismatched types, expected .bool. but got .i32." }
}
fn main() {
diff --git a/gcc/testsuite/rust/compile/func3.rs b/gcc/testsuite/rust/compile/func3.rs
index 002e5c9..338971a 100644
--- a/gcc/testsuite/rust/compile/func3.rs
+++ b/gcc/testsuite/rust/compile/func3.rs
@@ -4,5 +4,5 @@ fn test(a: i32, b: i32) -> i32 {
fn main() {
let a = test(1, true);
- // { dg-error "expected .i32. got .bool." "" { target *-*-* } .-1 }
+ // { dg-error "mismatched types, expected .i32. but got .bool." "" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/rust/compile/func4.rs b/gcc/testsuite/rust/compile/func4.rs
index 3b2d2b0..1b54878 100644
--- a/gcc/testsuite/rust/compile/func4.rs
+++ b/gcc/testsuite/rust/compile/func4.rs
@@ -1,4 +1,4 @@
-fn func() -> i32 { // { dg-error "expected .i32. got ...." }
+fn func() -> i32 { // { dg-error "mismatched types, expected .i32. but got ...." }
}
fn main() {
diff --git a/gcc/testsuite/rust/compile/func5.rs b/gcc/testsuite/rust/compile/func5.rs
index 05624f5..6f418a2 100644
--- a/gcc/testsuite/rust/compile/func5.rs
+++ b/gcc/testsuite/rust/compile/func5.rs
@@ -1,5 +1,5 @@
fn func() -> i32 {
- return; // { dg-error "expected .i32. got ...." }
+ return; // { dg-error "mismatched types, expected .i32. but got ...." }
}
fn main() {
diff --git a/gcc/testsuite/rust/compile/generics1.rs b/gcc/testsuite/rust/compile/generics1.rs
index e9bdb3a..9e440af 100644
--- a/gcc/testsuite/rust/compile/generics1.rs
+++ b/gcc/testsuite/rust/compile/generics1.rs
@@ -1,4 +1,4 @@
-// { dg-error "expected .i32. got .i8." "" { target *-*-* } 0 }
+// { dg-error "mismatched types, expected .i32. but got .i8." "" { target *-*-* } 0 }
#[lang = "sized"]
pub trait Sized {}
diff --git a/gcc/testsuite/rust/compile/generics2.rs b/gcc/testsuite/rust/compile/generics2.rs
index fc203ab..4c95fd1 100644
--- a/gcc/testsuite/rust/compile/generics2.rs
+++ b/gcc/testsuite/rust/compile/generics2.rs
@@ -1,4 +1,4 @@
-// { dg-error "expected .i32. got .i8." "" { target *-*-* } 0 }
+// { dg-error "mismatched types, expected .i32. but got .i8." "" { target *-*-* } 0 }
#[lang = "sized"]
pub trait Sized {}
diff --git a/gcc/testsuite/rust/compile/generics3.rs b/gcc/testsuite/rust/compile/generics3.rs
index e28953c..514d713 100644
--- a/gcc/testsuite/rust/compile/generics3.rs
+++ b/gcc/testsuite/rust/compile/generics3.rs
@@ -1,4 +1,4 @@
-// { dg-error "expected .i32. got .i8." "" { target *-*-* } 0 }
+// { dg-error "mismatched types, expected .i32. but got .i8." "" { target *-*-* } 0 }
#[lang = "sized"]
pub trait Sized {}
diff --git a/gcc/testsuite/rust/compile/implicit_returns_err1.rs b/gcc/testsuite/rust/compile/implicit_returns_err1.rs
index 973ba80..1e89854 100644
--- a/gcc/testsuite/rust/compile/implicit_returns_err1.rs
+++ b/gcc/testsuite/rust/compile/implicit_returns_err1.rs
@@ -1,5 +1,5 @@
fn test(x: i32) -> i32 {
- if x > 1 { // { dg-error "expected .... got .<integer>." }
+ if x > 1 { // { dg-error "mismatched types, expected .... but got .<integer>." }
1
} else {
2
diff --git a/gcc/testsuite/rust/compile/implicit_returns_err2.rs b/gcc/testsuite/rust/compile/implicit_returns_err2.rs
index fb90748..8d9e6e3 100644
--- a/gcc/testsuite/rust/compile/implicit_returns_err2.rs
+++ b/gcc/testsuite/rust/compile/implicit_returns_err2.rs
@@ -1,5 +1,5 @@
fn test(x: i32) -> i32 {
- // { dg-error "expected .i32. got .bool." "" { target *-*-* } .-1 }
+ // { dg-error "mismatched types, expected .i32. but got .bool." "" { target *-*-* } .-1 }
return 1;
// { dg-warning "unreachable expression" "" { target *-*-* } .+1 }
true
diff --git a/gcc/testsuite/rust/compile/implicit_returns_err3.rs b/gcc/testsuite/rust/compile/implicit_returns_err3.rs
index 37b1c62..ac98213 100644
--- a/gcc/testsuite/rust/compile/implicit_returns_err3.rs
+++ b/gcc/testsuite/rust/compile/implicit_returns_err3.rs
@@ -1,4 +1,4 @@
-fn test(x: i32) -> i32 { // { dg-error "expected .i32. got ...." }
+fn test(x: i32) -> i32 { // { dg-error "mismatched types, expected .i32. but got ...." }
if x > 1 {
1
}
diff --git a/gcc/testsuite/rust/compile/implicit_returns_err4.rs b/gcc/testsuite/rust/compile/implicit_returns_err4.rs
index 59c6a020..16a2f4c 100644
--- a/gcc/testsuite/rust/compile/implicit_returns_err4.rs
+++ b/gcc/testsuite/rust/compile/implicit_returns_err4.rs
@@ -1,5 +1,5 @@
fn test(x: bool) -> bool {
- // { dg-error "expected .bool. got ...." "" { target *-*-*} .-1 }
+ // { dg-error "mismatched types, expected .bool. but got ...." "" { target *-*-*} .-1 }
return x;
// { dg-warning "unreachable expression" "" { target *-*-* } .+1 }
()
diff --git a/gcc/testsuite/rust/compile/issue-1152.rs b/gcc/testsuite/rust/compile/issue-1152.rs
index 1569705..32908c3 100644
--- a/gcc/testsuite/rust/compile/issue-1152.rs
+++ b/gcc/testsuite/rust/compile/issue-1152.rs
@@ -1,6 +1,6 @@
fn test() {
let f = [0; -4_isize];
- // { dg-error "expected .usize. got .isize." "" { target *-*-* } .-1 }
+ // { dg-error "mismatched types, expected .usize. but got .isize." "" { target *-*-* } .-1 }
let f = [0_usize; -1_isize];
- // { dg-error "expected .usize. got .isize." "" { target *-*-* } .-1 }
+ // { dg-error "mismatched types, expected .usize. but got .isize." "" { target *-*-* } .-1 }
}
diff --git a/gcc/testsuite/rust/compile/issue-2477.rs b/gcc/testsuite/rust/compile/issue-2477.rs
index 26831a6..ca13ac5 100644
--- a/gcc/testsuite/rust/compile/issue-2477.rs
+++ b/gcc/testsuite/rust/compile/issue-2477.rs
@@ -1,3 +1,3 @@
const FOO: u32 = return 0;
// { dg-error "return statement outside of function body" "" { target *-*-* } .-1 }
-// { dg-error "expected .u32. got" "" { target *-*-* } .-2 }
+// { dg-error "mismatched types, expected .u32. but got" "" { target *-*-* } .-2 }
diff --git a/gcc/testsuite/rust/compile/mismatched-types.rs b/gcc/testsuite/rust/compile/mismatched-types.rs
new file mode 100644
index 0000000..08c7512
--- /dev/null
+++ b/gcc/testsuite/rust/compile/mismatched-types.rs
@@ -0,0 +1,9 @@
+// ErrorCode::E0308
+#![allow(unused)]
+fn main() {
+ fn plus_one(x: i32) -> i32 {
+ x + 1
+ }
+ plus_one("Not a number"); // { dg-error "mismatched types, expected .i32. but got .& str." }
+ let x: f32 = "Not a float"; // { dg-error "mismatched types, expected .f32. but got .& str." }
+}
diff --git a/gcc/testsuite/rust/compile/reference1.rs b/gcc/testsuite/rust/compile/reference1.rs
index ff79153..2f94754 100644
--- a/gcc/testsuite/rust/compile/reference1.rs
+++ b/gcc/testsuite/rust/compile/reference1.rs
@@ -2,5 +2,5 @@ fn main() {
let a = &123;
let b: &mut i32 = a;
// { dg-error "mismatched mutability" "" { target *-*-* } .-1 }
- // { dg-error "expected .&mut i32. got .& i32." "" { target *-*-* } .-2 }
+ // { dg-error "mismatched types, expected .&mut i32. but got .& i32." "" { target *-*-* } .-2 }
}
diff --git a/gcc/testsuite/rust/compile/stmt_with_block_err1.rs b/gcc/testsuite/rust/compile/stmt_with_block_err1.rs
index 8780d0f..ec75cae 100644
--- a/gcc/testsuite/rust/compile/stmt_with_block_err1.rs
+++ b/gcc/testsuite/rust/compile/stmt_with_block_err1.rs
@@ -1,11 +1,11 @@
fn test(x: i32) -> i32 {
- if x > 1 { // { dg-error "expected .... got .<integer>." }
+ if x > 1 { // { dg-error "mismatched types, expected .... but got .<integer>." }
1
} else {
2
}
- { // { dg-error "expected .... got .<integer>." }
+ { // { dg-error "mismatched types, expected .... but got .<integer>." }
3
}
diff --git a/gcc/testsuite/rust/compile/traits1.rs b/gcc/testsuite/rust/compile/traits1.rs
index 68f5abb..779662c 100644
--- a/gcc/testsuite/rust/compile/traits1.rs
+++ b/gcc/testsuite/rust/compile/traits1.rs
@@ -3,7 +3,7 @@ pub trait Sized {}
trait Foo {
fn Bar() -> i32 {}
- // { dg-error "expected .i32. got .()." "" { target *-*-* } .-1 }
+ // { dg-error "mismatched types, expected .i32. but got .()." "" { target *-*-* } .-1 }
}
struct Baz;
diff --git a/gcc/testsuite/rust/compile/traits2.rs b/gcc/testsuite/rust/compile/traits2.rs
index 3631a09..a76f4c0 100644
--- a/gcc/testsuite/rust/compile/traits2.rs
+++ b/gcc/testsuite/rust/compile/traits2.rs
@@ -3,14 +3,14 @@ pub trait Sized {}
trait Foo {
fn Bar() -> i32 {}
- // { dg-error "expected .i32. got .()." "" { target *-*-* } .-1 }
+ // { dg-error "mismatched types, expected .i32. but got .()." "" { target *-*-* } .-1 }
}
struct Baz;
impl Foo for Baz {
fn Bar() {}
- // { dg-error "expected" "" { target *-*-* } .-1 }
+ // { dg-error "mismatched types, expected" "" { target *-*-* } .-1 }
// { dg-error "method .Bar. has an incompatible type for trait .Foo." "" { target *-*-* } .-2 }
}
diff --git a/gcc/testsuite/rust/compile/tuple_mismatch.rs b/gcc/testsuite/rust/compile/tuple_mismatch.rs
index fbeb4b2..828586b 100644
--- a/gcc/testsuite/rust/compile/tuple_mismatch.rs
+++ b/gcc/testsuite/rust/compile/tuple_mismatch.rs
@@ -7,7 +7,7 @@ fn main() {
// The lhs and rhs sizes don't match, but we still resolve 'a' to be bool, we don't
// error out immediately once we notice the size mismatch.
-fn foo() -> i32 { // { dg-error "expected .i32. got .bool." }
+fn foo() -> i32 { // { dg-error "mismatched types, expected .i32. but got .bool." }
let (a, _) = (true, 2, 3); // { dg-error "expected a tuple with 3 elements, found one with 2 elements" }
a
}
diff --git a/gcc/testsuite/rust/compile/tuple_struct3.rs b/gcc/testsuite/rust/compile/tuple_struct3.rs
index 4af66b8..e2fb02f 100644
--- a/gcc/testsuite/rust/compile/tuple_struct3.rs
+++ b/gcc/testsuite/rust/compile/tuple_struct3.rs
@@ -2,5 +2,5 @@ struct Foo(i32, i32, bool);
fn main() {
let c = Foo(1, 2f32, true);
- // { dg-error "expected .i32. got .f32." "" { target *-*-* } .-1 }
+ // { dg-error "mismatched types, expected .i32. but got .f32." "" { target *-*-* } .-1 }
}