From: Pierre-Emmanuel Patry Date: Wed, 24 Jan 2024 16:10:42 +0000 (+0100) Subject: gccrs: Struct are types, not values X-Git-Tag: basepoints/gcc-16~6985 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e47d270c0d51d7865a8cf2575ffab46352db371b;p=thirdparty%2Fgcc.git gccrs: Struct are types, not values We shall search in the right namespace. The correct namespace for struct is type namespace. gcc/rust/ChangeLog: * typecheck/rust-hir-type-check-item.cc (TypeCheckItem::visit): Change search location for struct types. Signed-off-by: Pierre-Emmanuel Patry --- diff --git a/gcc/rust/typecheck/rust-hir-type-check-item.cc b/gcc/rust/typecheck/rust-hir-type-check-item.cc index 4ab946e1c2a..3e504e5df32 100644 --- a/gcc/rust/typecheck/rust-hir-type-check-item.cc +++ b/gcc/rust/typecheck/rust-hir-type-check-item.cc @@ -279,9 +279,11 @@ TypeCheckItem::visit (HIR::StructStruct &struct_decl) { auto nr_ctx = Resolver2_0::ImmutableNameResolutionContext::get ().resolver (); - auto canonical_path = nr_ctx.values.to_canonical_path ( + auto canonical_path = nr_ctx.types.to_canonical_path ( struct_decl.get_mappings ().get_nodeid ()); + if (!canonical_path.has_value ()) + rust_unreachable (); path = canonical_path.value (); } else