-package org.simantics.scl.compiler.elaboration.modules;\r
-\r
-import org.simantics.scl.compiler.types.TCon;\r
-import org.simantics.scl.compiler.types.TVar;\r
-import org.simantics.scl.compiler.types.Type;\r
-\r
-public class TypeAlias {\r
- TCon con;\r
- \r
- public TVar[] parameters;\r
- public Type body;\r
- \r
- public TypeAlias(TCon con, int arity) {\r
- this.con = con;\r
- this.parameters = new TVar[arity];\r
- }\r
- \r
- public TCon getCon() {\r
- return con;\r
- }\r
-\r
- public int getArity() {\r
- return parameters.length;\r
- }\r
-}\r
+package org.simantics.scl.compiler.elaboration.modules;
+
+import org.simantics.scl.compiler.common.exceptions.InternalCompilerError;
+import org.simantics.scl.compiler.types.TCon;
+import org.simantics.scl.compiler.types.TVar;
+import org.simantics.scl.compiler.types.Type;
+import org.simantics.scl.compiler.types.kinds.Kind;
+
+public class TypeAlias extends TypeDescriptor {
+ public TVar[] parameters;
+ public Type body;
+ public String documentation;
+
+ public TypeAlias(TCon name, int arity) {
+ super(name);
+ this.parameters = new TVar[arity];
+ }
+
+ public int getArity() {
+ return parameters.length;
+ }
+
+ @Override
+ public Kind getKind() {
+ throw new InternalCompilerError("Unsupported method TypeAlias.getKind invoked.");
+ }
+
+ @Override
+ public void setDocumentation(String documentation) {
+ this.documentation = documentation;
+ }
+
+ @Override
+ public String getDocumentation() {
+ return documentation;
+ }
+}