]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeConstructor.java
Merge "Ensure GetElementClassRequest is not constructed without elementFactory"
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / modules / TypeConstructor.java
index e3adf5ba8eaa4c680076489a5cad6f300dabdd4b..016a0b780b158990e38eaf1618b5451495d320e3 100644 (file)
@@ -13,10 +13,9 @@ import org.simantics.scl.compiler.types.kinds.KArrow;
 import org.simantics.scl.compiler.types.kinds.Kind;\r
 import org.simantics.scl.compiler.types.kinds.Kinds;\r
 \r
-public abstract class TypeConstructor {\r
+public abstract class TypeConstructor extends TypeDescriptor {\r
     public Kind kind;\r
     \r
-    public TCon name;\r
     public TVar[] parameters;\r
     public Type type;\r
     \r
@@ -30,11 +29,12 @@ public abstract class TypeConstructor {
     public boolean isOpen = true;\r
     \r
     public TypeConstructor(Kind kind) {\r
+        super(null);\r
         this.kind = kind;\r
     }\r
     \r
     public TypeConstructor(TCon name, Kind kind) {\r
-        this.name = name;\r
+        super(name);\r
         this.kind = kind;\r
         \r
         ArrayList<TVar> vars = new ArrayList<TVar>(2);\r
@@ -48,6 +48,7 @@ public abstract class TypeConstructor {
     }\r
     \r
     public TypeConstructor(TCon name, TVar ... parameters) {\r
+        super(name);\r
         setType(name, parameters);\r
         Kind kind = Kinds.STAR;\r
         for(int i = parameters.length-1;i>=0;--i)\r
@@ -60,14 +61,25 @@ public abstract class TypeConstructor {
         this.parameters = parameters;\r
         this.type = Types.apply(name, parameters);\r
     }\r
-    \r
+        \r
     public void setConstructors(Constructor ... constructors) {\r
         this.constructors = constructors;\r
     }\r
 \r
     public abstract TypeDesc construct(JavaTypeTranslator translator, Type[] parameters);\r
 \r
+    @Override\r
     public void setDocumentation(String documentation) {\r
         this.documentation = documentation;\r
     }\r
+    \r
+    @Override\r
+    public Kind getKind() {\r
+        return kind;\r
+    }\r
+    \r
+    @Override\r
+    public String getDocumentation() {\r
+        return documentation;\r
+    }\r
 }\r