]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/contexts/TypingContext.java
migrated to svn revision 33108
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / contexts / TypingContext.java
index de58a05cdb6c7838d02f4a108a77ac4127b98444..850f077db32d3ec9c8b81a2ebe5b4f6b32b30aa6 100644 (file)
@@ -1,13 +1,11 @@
 package org.simantics.scl.compiler.elaboration.contexts;
 
-import gnu.trove.map.hash.THashMap;
-import gnu.trove.set.hash.THashSet;
-
 import java.util.ArrayList;
 
 import org.simantics.scl.compiler.common.exceptions.InternalCompilerError;
 import org.simantics.scl.compiler.common.names.Name;
 import org.simantics.scl.compiler.constants.NoRepConstant;
+import org.simantics.scl.compiler.elaboration.expressions.EAmbiguous;
 import org.simantics.scl.compiler.elaboration.expressions.EApply;
 import org.simantics.scl.compiler.elaboration.expressions.EConstant;
 import org.simantics.scl.compiler.elaboration.expressions.EError;
@@ -41,6 +39,9 @@ import org.simantics.scl.compiler.types.exceptions.UnificationException;
 import org.simantics.scl.compiler.types.kinds.Kinds;
 import org.simantics.scl.compiler.types.util.TypeUnparsingContext;
 
+import gnu.trove.map.hash.THashMap;
+import gnu.trove.set.hash.THashSet;
+
 public class TypingContext implements EnvironmentalContext {
 
     private ErrorLog errorLog;
@@ -64,6 +65,9 @@ public class TypingContext implements EnvironmentalContext {
     public THashSet<SCLValue> recursiveValues;
     public ArrayList<EPlaceholder> recursiveReferences;
     
+    // Overloading
+    public ArrayList<EAmbiguous> overloadedExpressions = new ArrayList<EAmbiguous>(); 
+    
     //TypeUnparsingContext tuc = new TypeUnparsingContext();   
     
     Environment environment;
@@ -258,7 +262,7 @@ public class TypingContext implements EnvironmentalContext {
      * Instantiates type abstractions and constraints from the value.
      */
     public Expression instantiate(Expression expr) {
-        Type type = Types.weakCanonical(expr.getType());
+        Type type = Types.canonical(expr.getType());
         while(type instanceof TForAll) {
             TForAll forAll = (TForAll)type;
             TVar var = forAll.var;
@@ -297,7 +301,7 @@ public class TypingContext implements EnvironmentalContext {
      * type applications, lambdas and effect subsumptions.
      */
     public Expression subsume(Expression expr, Type b) {
-        b = Types.weakCanonical(b);
+        b = Types.canonical(b);
         /*if(b instanceof TForAll) {
             TForAll forAll = (TForAll)b;
             TVar var = forAll.var;