gccrs: Statics are a coercion site
authorPhilip Herron <philip.herron@embecosm.com>
Sat, 17 Sep 2022 09:05:59 +0000 (10:05 +0100)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 31 Jan 2023 13:16:51 +0000 (14:16 +0100)
Statics can be assigned to a block expression meaning they need to behave
similarly to constant items.

gcc/rust/ChangeLog:

* typecheck/rust-hir-type-check-toplevel.cc (TypeCheckTopLevel::visit):
Make static items behave more similarly to const items.

gcc/rust/typecheck/rust-hir-type-check-toplevel.cc

index b0ee292..594e527 100644 (file)
@@ -261,11 +261,11 @@ TypeCheckTopLevel::visit (HIR::StaticItem &var)
   TyTy::BaseType *expr_type = TypeCheckExpr::Resolve (var.get_expr ());
 
   TyTy::BaseType *unified
-    = unify_site (var.get_mappings ().get_hirid (),
-                 TyTy::TyWithLocation (type, var.get_type ()->get_locus ()),
-                 TyTy::TyWithLocation (expr_type,
-                                       var.get_expr ()->get_locus ()),
-                 var.get_locus ());
+    = coercion_site (var.get_mappings ().get_hirid (),
+                    TyTy::TyWithLocation (type, var.get_type ()->get_locus ()),
+                    TyTy::TyWithLocation (expr_type,
+                                          var.get_expr ()->get_locus ()),
+                    var.get_locus ());
   context->insert_type (var.get_mappings (), unified);
 }