bugfixes with using packages
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 24 Jun 2021 02:44:04 +0000 (21:44 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Thu, 24 Jun 2021 02:44:04 +0000 (21:44 -0500)
bin/onyx
core/type_info/helper.onyx
src/onyxsymres.c

index 502d0108bfb4e56366ff68113bff3d80b0e9751f..13c8473badc8520beddc62cf0d497c7fda37bf20 100755 (executable)
Binary files a/bin/onyx and b/bin/onyx differ
index 44c76a302e04214c81a73591f4db22352442d080..5dd1f8609e9ed55ee0653bd525854ff57b069bd7 100644 (file)
@@ -76,7 +76,8 @@ write_type_name :: (writer: ^io.Writer, t: type_expr) {
 
         case .Struct {
             s := cast(^Type_Info_Struct) info;
-            io.write_str(writer, s.name);
+            if s.name.count > 0 do io.write_str(writer, s.name);
+            else                do io.write_str(writer, "<anonymous struct>");
         }
 
         case .Compound {
index 76e328cad82e4aecffdf58c3f0ee5ddcfcec1375..eb0911139d6dad0aa12ebae2aef5ffc8ed64febe 100644 (file)
@@ -599,6 +599,8 @@ static SymresStatus symres_use(AstUse* use) {
             }
         }
 
+        package_track_use_package(package->package, use->entity);
+
         return Symres_Success;
     }
 
@@ -1123,12 +1125,7 @@ void symres_entity(Entity* ent) {
         case Entity_Type_Foreign_Global_Header:
         case Entity_Type_Global_Header:           ss = symres_global(ent->global); break;
 
-        case Entity_Type_Use_Package:             ss = symres_use(ent->use);
-                                                  if (ent->use->expr && ((AstPackage *) ent->use->expr)->package)
-                                                      package_track_use_package(((AstPackage *) ent->use->expr)->package, ent);
-                                                  next_state = Entity_State_Finalized;
-                                                  break;
-
+        case Entity_Type_Use_Package:
         case Entity_Type_Use:                     ss = symres_use(ent->use);
                                                   next_state = Entity_State_Finalized;
                                                   break;