X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fmodules%2FTypeConstructor.java;h=016a0b780b158990e38eaf1618b5451495d320e3;hp=e3adf5ba8eaa4c680076489a5cad6f300dabdd4b;hb=a8758de5bc19e5adb3f618d3038743a164f09912;hpb=12d9af17384d960b75d58c3935d2b7b46d93e87b diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeConstructor.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeConstructor.java index e3adf5ba8..016a0b780 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeConstructor.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeConstructor.java @@ -13,10 +13,9 @@ import org.simantics.scl.compiler.types.kinds.KArrow; import org.simantics.scl.compiler.types.kinds.Kind; import org.simantics.scl.compiler.types.kinds.Kinds; -public abstract class TypeConstructor { +public abstract class TypeConstructor extends TypeDescriptor { public Kind kind; - public TCon name; public TVar[] parameters; public Type type; @@ -30,11 +29,12 @@ public abstract class TypeConstructor { public boolean isOpen = true; public TypeConstructor(Kind kind) { + super(null); this.kind = kind; } public TypeConstructor(TCon name, Kind kind) { - this.name = name; + super(name); this.kind = kind; ArrayList vars = new ArrayList(2); @@ -48,6 +48,7 @@ public abstract class TypeConstructor { } public TypeConstructor(TCon name, TVar ... parameters) { + super(name); setType(name, parameters); Kind kind = Kinds.STAR; for(int i = parameters.length-1;i>=0;--i) @@ -60,14 +61,25 @@ public abstract class TypeConstructor { this.parameters = parameters; this.type = Types.apply(name, parameters); } - + public void setConstructors(Constructor ... constructors) { this.constructors = constructors; } public abstract TypeDesc construct(JavaTypeTranslator translator, Type[] parameters); + @Override public void setDocumentation(String documentation) { this.documentation = documentation; } + + @Override + public Kind getKind() { + return kind; + } + + @Override + public String getDocumentation() { + return documentation; + } }