]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/modules/TypeAlias.java
(refs #7809) Added builtin Pure type to indicate no effects
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / modules / TypeAlias.java
1 package org.simantics.scl.compiler.elaboration.modules;
2
3 import org.simantics.scl.compiler.common.exceptions.InternalCompilerError;
4 import org.simantics.scl.compiler.types.TCon;
5 import org.simantics.scl.compiler.types.TVar;
6 import org.simantics.scl.compiler.types.Type;
7 import org.simantics.scl.compiler.types.kinds.Kind;
8
9 public class TypeAlias extends TypeDescriptor {   
10     public TVar[] parameters;
11     public Type body;
12     public String documentation;
13     
14     public TypeAlias(TCon name, int arity) {
15         super(name);
16         this.parameters = new TVar[arity];
17     }
18     
19     public TypeAlias(TCon name, TVar[] parameters, Type body) {
20         super(name);
21         this.parameters = parameters;
22         this.body = body;
23     }
24     
25     public int getArity() {
26         return parameters.length;
27     }
28
29     @Override
30     public Kind getKind() {
31         throw new InternalCompilerError("Unsupported method TypeAlias.getKind invoked.");
32     }
33     
34     @Override
35     public void setDocumentation(String documentation) {
36         this.documentation = documentation;
37     }
38     
39     @Override
40     public String getDocumentation() {
41         return documentation;
42     }
43 }