Nicolas Winkler 7 年之前
父节点
当前提交
76a408a586
共有 2 个文件被更改,包括 7 次插入4 次删除
  1. 2 4
      src/Semantic.cpp
  2. 5 0
      src/Semantic.h

+ 2 - 4
src/Semantic.cpp

@@ -8,8 +8,6 @@ namespace qlow
 {
     namespace sem
     {
-
-
         template<typename T, typename U>
         std::unique_ptr<T> unique_dynamic_cast(std::unique_ptr<U>&& p)
         {
@@ -23,13 +21,13 @@ namespace qlow
         {
             AstVisitor av;
 
+            // create classes
             SymbolTable<sem::Class> semClasses;
             for (auto& astClass : classes) {
-                auto semObj = av.visit(*astClass.get());
                 semClasses.insert(
                     {
                         astClass->name,
-                        unique_dynamic_cast<sem::Class>(std::move(semObj))
+                        std::make_unique<sem::Class>(astClass->name)
                     }
                 );
             }

+ 5 - 0
src/Semantic.h

@@ -38,6 +38,11 @@ struct qlow::sem::Class : public SemanticObject
     std::string name;
     SymbolTable<Field> fields;
     SymbolTable<Method> methods;
+
+    inline Class(const std::string& name) :
+        name{ name }
+    {
+    }
 };