]> gitweb.ps.run Git - toc/blobdiff - src/typeInfo.h
generic functions and structs
[toc] / src / typeInfo.h
index 0fd41140fce03695ac2c3b6e50e365de771a0923..cbe421ca33fe4108471adc571864ae8222991f1c 100644 (file)
@@ -15,7 +15,8 @@ TypeInfo typeType(const Program & p, Type t)
   TypeInfo result;\r
   result.isStruct = true;\r
   if (t.name == "int" || t.name == "float" || t.name == "double" ||\r
-      t.name == "char" || t.name == "long" || t.name == "short" || t.name == "bool")\r
+      t.name == "char" || t.name == "long" || t.name == "short" || t.name == "bool" ||\r
+      t.name == "void")\r
   {\r
     result.isStruct = false;\r
   }\r
@@ -47,7 +48,7 @@ TypeInfo typeExpr(const Program & p, const std::vector<std::string> & globalName
     auto m = findStructMethod(p, e._method.methodName, tiCaller);\r
     if (!m.has_value())\r
       throw "Unknown method";\r
-    result = typeType(p, m.value().returnType);\r
+    result = typeType(p, m.value().t.returnType);\r
     break;\r
   }\r
   case ExprType::Lit:\r
@@ -69,7 +70,7 @@ TypeInfo typeExpr(const Program & p, const std::vector<std::string> & globalName
         typeExpr(p, globalNamespace, globalCtx, *e._dot.expr), e._dot.identifier);\r
     if (!sm.has_value())\r
       throw "Unknown struct member";\r
-    result = typeType(p, sm.value().type);\r
+    result = typeType(p, sm.value().t.type);\r
     break;\r
   }\r
   case ExprType::PrefixOp:\r