diff options
author | Muhammad Mahad <mahadtxt@gmail.com> | 2023-07-17 12:32:17 +0500 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2024-01-16 18:55:55 +0100 |
commit | 23aa4bd6c27a47756b10e6f3b73667f5a965b232 (patch) | |
tree | cbf63d624501ccc6a4c932cacff1d9a4d39e56f8 /gcc | |
parent | 087ed58311d5831aa32088930e7b3ae3aa5a40a7 (diff) | |
download | gcc-23aa4bd6c27a47756b10e6f3b73667f5a965b232.zip gcc-23aa4bd6c27a47756b10e6f3b73667f5a965b232.tar.gz gcc-23aa4bd6c27a47756b10e6f3b73667f5a965b232.tar.bz2 |
gccrs: [E0423] expected function, tuple struct or tuple variant, found struct
Give error when an identifier was used like a function
name or a value was expected and the identifier exists
but it belongs to a different namespace.
gcc/rust/ChangeLog:
* typecheck/rust-tyty-call.cc (TypeCheckCallExpr::visit):
called error function.
gcc/testsuite/ChangeLog:
* rust/compile/found_struct.rs: New test.
Signed-off-by: Muhammad Mahad <mahadtxt@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/typecheck/rust-tyty-call.cc | 2 | ||||
-rw-r--r-- | gcc/testsuite/rust/compile/found_struct.rs | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/gcc/rust/typecheck/rust-tyty-call.cc b/gcc/rust/typecheck/rust-tyty-call.cc index 8469cf8..733ba61 100644 --- a/gcc/rust/typecheck/rust-tyty-call.cc +++ b/gcc/rust/typecheck/rust-tyty-call.cc @@ -59,7 +59,7 @@ TypeCheckCallExpr::visit (ADTType &type) if (variant.get_variant_type () != TyTy::VariantDef::VariantType::TUPLE) { rust_error_at ( - call.get_locus (), + call.get_locus (), ErrorCode ("E0423"), "expected function, tuple struct or tuple variant, found struct %<%s%>", type.get_name ().c_str ()); return; diff --git a/gcc/testsuite/rust/compile/found_struct.rs b/gcc/testsuite/rust/compile/found_struct.rs new file mode 100644 index 0000000..66462e6 --- /dev/null +++ b/gcc/testsuite/rust/compile/found_struct.rs @@ -0,0 +1,11 @@ +// https://doc.rust-lang.org/error_codes/E0423.html +#![allow(unused)] +fn main() { + struct Foo { + a: bool, + }; + + let f = Foo(); // { dg-error "expected function, tuple struct or tuple variant, found struct .Foo." } + // error: expected function, tuple struct or tuple variant, found `Foo` + // `Foo` is a struct name, but this expression uses it like a function name +} |