]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EError.java
d9a24618103c301defc751a8f6150b8a3f6d326b
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / expressions / EError.java
1 package org.simantics.scl.compiler.elaboration.expressions;\r
2 \r
3 import gnu.trove.map.hash.TObjectIntHashMap;\r
4 import gnu.trove.set.hash.THashSet;\r
5 import gnu.trove.set.hash.TIntHashSet;\r
6 \r
7 import org.simantics.scl.compiler.elaboration.contexts.ReplaceContext;\r
8 import org.simantics.scl.compiler.elaboration.contexts.SimplificationContext;\r
9 import org.simantics.scl.compiler.elaboration.contexts.TranslationContext;\r
10 import org.simantics.scl.compiler.elaboration.contexts.TypingContext;\r
11 import org.simantics.scl.compiler.environment.Environment;\r
12 import org.simantics.scl.compiler.errors.Locations;\r
13 import org.simantics.scl.compiler.internal.codegen.references.IVal;\r
14 import org.simantics.scl.compiler.internal.codegen.writer.CodeWriter;\r
15 import org.simantics.scl.compiler.internal.elaboration.utils.ExpressionDecorator;\r
16 import org.simantics.scl.compiler.types.Type;\r
17 import org.simantics.scl.compiler.types.Types;\r
18 import org.simantics.scl.compiler.types.exceptions.MatchException;\r
19 import org.simantics.scl.compiler.types.kinds.Kinds;\r
20 \r
21 public class EError extends Expression {\r
22 \r
23     public EError(long loc, Type type) {\r
24         super(loc);\r
25         setType(type);\r
26     }\r
27     \r
28     public EError() {     \r
29     }\r
30     \r
31     public EError(long loc) {\r
32         this(loc, Types.metaVar(Kinds.STAR));\r
33     }\r
34 \r
35         public void collectRefs(TObjectIntHashMap<Object> allRefs, TIntHashSet refs) {\r
36     }\r
37         \r
38         @Override\r
39         public void collectVars(TObjectIntHashMap<Variable> allVars,\r
40                 TIntHashSet vars) {    \r
41         }\r
42 \r
43         @Override\r
44         protected void updateType() throws MatchException {\r
45             setType(Types.metaVar(Kinds.STAR));     \r
46         }\r
47         \r
48         @Override\r
49         public IVal toVal(Environment env, CodeWriter w) {\r
50         throw new UnsupportedOperationException();\r
51     }\r
52 \r
53     @Override\r
54     public void collectFreeVariables(THashSet<Variable> vars) {\r
55     }\r
56 \r
57     @Override\r
58     public Expression simplify(SimplificationContext context) {\r
59         return this;\r
60     }\r
61 \r
62     @Override\r
63     public Expression resolve(TranslationContext context) {\r
64         return this;\r
65     }\r
66     \r
67     @Override\r
68     public Expression inferType(TypingContext context) {\r
69         return this;\r
70     }\r
71 \r
72     @Override\r
73     public Expression decorate(ExpressionDecorator decorator) {\r
74         return this;\r
75     }\r
76 \r
77     @Override\r
78     public void collectEffects(THashSet<Type> effects) {\r
79     }\r
80     \r
81     @Override\r
82     public void setLocationDeep(long loc) {\r
83         if(location == Locations.NO_LOCATION)\r
84             location = loc;\r
85     }\r
86     \r
87     @Override\r
88     public void accept(ExpressionVisitor visitor) {\r
89         visitor.visit(this);\r
90     }\r
91     \r
92     @Override\r
93     public Expression replace(ReplaceContext context) {\r
94         return this;\r
95     }\r
96 \r
97     @Override\r
98     public void forVariables(VariableProcedure procedure) {\r
99     }\r
100     \r
101     @Override\r
102     public Expression accept(ExpressionTransformer transformer) {\r
103         return transformer.transform(this);\r
104     }\r
105 \r
106 }\r