]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/TypeCheckingScheduler.java
Merged changes from feature/scl to master.
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / compilation / TypeCheckingScheduler.java
index cb6752527605e5dc9c1d659515c2272234cd3aa9..e2b0109d17ce77f3d187e671b63eac26d4bc15ee 100644 (file)
@@ -5,8 +5,6 @@ import java.util.ArrayList;
 import org.simantics.scl.compiler.elaboration.contexts.TypingContext;
 import org.simantics.scl.compiler.elaboration.expressions.Variable;
 import org.simantics.scl.compiler.elaboration.modules.SCLValue;
-import org.simantics.scl.compiler.environment.Environment;
-import org.simantics.scl.compiler.errors.ErrorLog;
 import org.simantics.scl.compiler.internal.elaboration.constraints.Constraint;
 import org.simantics.scl.compiler.internal.elaboration.utils.StronglyConnectedComponents;
 import org.simantics.scl.compiler.types.TPred;
@@ -24,15 +22,13 @@ import gnu.trove.set.hash.TIntHashSet;
  * @author Hannu Niemistö
  */
 public class TypeCheckingScheduler {
-    final ErrorLog errorLog;
-    final Environment environment;
+    private final CompilationContext compilationContext;
     
-    ArrayList<TypeInferableDefinition> definitions = new ArrayList<TypeInferableDefinition>();
-    ArrayList<Runnable> postTypeCheckingRunnables = new ArrayList<Runnable>();
+    private final ArrayList<TypeInferableDefinition> definitions = new ArrayList<TypeInferableDefinition>();
+    private final ArrayList<Runnable> postTypeCheckingRunnables = new ArrayList<Runnable>();
     
-    public TypeCheckingScheduler(ErrorLog errorLog, Environment environment) {
-        this.errorLog = errorLog;
-        this.environment = environment;
+    public TypeCheckingScheduler(CompilationContext compilationContext) {
+        this.compilationContext = compilationContext;
     }
 
     public void addTypeInferableDefinition(TypeInferableDefinition definition) {
@@ -74,7 +70,7 @@ public class TypeCheckingScheduler {
     }
     
     private void typeCheck(int[] component) {
-        TypingContext context = new TypingContext(errorLog, environment);
+        TypingContext context = new TypingContext(compilationContext);
         context.recursiveValues = new THashSet<SCLValue>();
         
         for(int c : component)
@@ -106,7 +102,7 @@ public class TypeCheckingScheduler {
                             constraintMap.put(cons.constraint, cons);
                 }
                 Constraint cons = constraintMap.get(constraint);
-                errorLog.log(cons.getDemandLocation(), 
+                compilationContext.errorLog.log(cons.getDemandLocation(), 
                         "Constrain " + constraint + 
                         " contains free variables not mentioned in the type of the value.");
             }