]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/compilation/TypeCheckingScheduler.java
Merge "List the unsatisfied dependencies in CanvasContext"
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / compilation / TypeCheckingScheduler.java
index c3fb2dda7076d74f0e9924e8eed00197e950f557..e2b0109d17ce77f3d187e671b63eac26d4bc15ee 100644 (file)
@@ -1,38 +1,34 @@
 package org.simantics.scl.compiler.compilation;
 
-import gnu.trove.impl.Constants;
-import gnu.trove.map.hash.THashMap;
-import gnu.trove.map.hash.TObjectIntHashMap;
-import gnu.trove.set.hash.THashSet;
-import gnu.trove.set.hash.TIntHashSet;
-
 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;
 import org.simantics.scl.compiler.types.TVar;
 
+import gnu.trove.impl.Constants;
+import gnu.trove.map.hash.THashMap;
+import gnu.trove.map.hash.TObjectIntHashMap;
+import gnu.trove.set.hash.THashSet;
+import gnu.trove.set.hash.TIntHashSet;
+
 /**
  * Schedules the order of type checking.
  * 
  * @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.");
             }