From 75dce4d629249a31bebd5e58e6f13e5d3df04711 Mon Sep 17 00:00:00 2001 From: Liam Naddell Date: Fri, 12 Jul 2024 20:56:08 -0400 Subject: gccrs: [gccrs#3046] ICE on failing to find enum variant gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-expr.cc: Fix ICE caused by not finding enum variant by adding new error message gcc/testsuite/ChangeLog: * rust/compile/issue-3046.rs: Add test for new error message Signed-off-by: Liam Naddell --- gcc/rust/typecheck/rust-hir-type-check-expr.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'gcc/rust') diff --git a/gcc/rust/typecheck/rust-hir-type-check-expr.cc b/gcc/rust/typecheck/rust-hir-type-check-expr.cc index 6212660..0e897813 100644 --- a/gcc/rust/typecheck/rust-hir-type-check-expr.cc +++ b/gcc/rust/typecheck/rust-hir-type-check-expr.cc @@ -194,7 +194,14 @@ TypeCheckExpr::visit (HIR::CallExpr &expr) HirId variant_id; bool ok = context->lookup_variant_definition ( expr.get_fnexpr ()->get_mappings ().get_hirid (), &variant_id); - rust_assert (ok); + + if (!ok) + { + rust_error_at (expr.get_locus (), ErrorCode::E0423, + "expected function, tuple struct or tuple " + "variant, found enum"); + return; + } TyTy::VariantDef *lookup_variant = nullptr; ok = adt->lookup_variant_by_id (variant_id, &lookup_variant); -- cgit v1.1