From: Philip Herron <[email protected]>
We just had a typo returning ok true when it should have been false.
Fixes Rust-GCC#3876
gcc/rust/ChangeLog:
* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::visit):
fix typo
gcc/testsuite/ChangeLog:
* rust/compile/issue-3876.rs: New test.
Signed-off-by: Philip Herron <[email protected]>
---
gcc/rust/typecheck/rust-hir-type-check-struct.cc | 2 +-
gcc/testsuite/rust/compile/issue-3876.rs | 8 ++++++++
2 files changed, 9 insertions(+), 1 deletion(-)
create mode 100644 gcc/testsuite/rust/compile/issue-3876.rs
diff --git a/gcc/rust/typecheck/rust-hir-type-check-struct.cc
b/gcc/rust/typecheck/rust-hir-type-check-struct.cc
index e3a08e6f044..4ef83482a53 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-struct.cc
+++ b/gcc/rust/typecheck/rust-hir-type-check-struct.cc
@@ -362,7 +362,7 @@ TypeCheckStructExpr::visit (HIR::StructExprFieldIdentifier
&field)
if (!ok)
{
rust_error_at (field.get_locus (), "unknown field");
- return true;
+ return false;
}
auto it = adtFieldIndexToField.find (field_index);
diff --git a/gcc/testsuite/rust/compile/issue-3876.rs
b/gcc/testsuite/rust/compile/issue-3876.rs
new file mode 100644
index 00000000000..17b1590590e
--- /dev/null
+++ b/gcc/testsuite/rust/compile/issue-3876.rs
@@ -0,0 +1,8 @@
+enum test {
+ A(i32),
+}
+
+fn fun(x: i32) {
+ test::A { x }
+ // { dg-error "unknown field" "" { target *-*-* } .-1 }
+}
--
2.49.0