X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fexpressions%2FEAmbiguous.java;h=f30b5d753d275c75ab4d2249a0b85634c6324b9f;hb=a04614760395f09f5e9e3d38226b72f1b8e3d7ba;hp=d52cc3f2ef4c3d493170fb3205c7e5238ea55b1c;hpb=a8d72a172fdc815c8a9f0f584f010f7e35286f92;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EAmbiguous.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EAmbiguous.java index d52cc3f2e..f30b5d753 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EAmbiguous.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EAmbiguous.java @@ -16,9 +16,6 @@ import org.simantics.scl.compiler.types.util.TypeListener; import org.simantics.scl.compiler.types.util.TypeUnparsingContext; import gnu.trove.map.hash.THashMap; -import gnu.trove.map.hash.TObjectIntHashMap; -import gnu.trove.set.hash.THashSet; -import gnu.trove.set.hash.TIntHashSet; public class EAmbiguous extends SimplifiableExpression { public static final boolean DEBUG = false; @@ -27,7 +24,7 @@ public class EAmbiguous extends SimplifiableExpression { boolean[] active; int activeCount; transient TypingContext context; - Expression resolvedExpression; + public Expression resolvedExpression; public abstract static class Alternative { public abstract Type getType(); @@ -42,11 +39,6 @@ public class EAmbiguous extends SimplifiableExpression { this.activeCount = alternatives.length; } - @Override - public void collectVars(TObjectIntHashMap allVars, - TIntHashSet vars) { - } - @Override protected void updateType() throws MatchException { throw new InternalCompilerError(); @@ -64,7 +56,7 @@ public class EAmbiguous extends SimplifiableExpression { THashMap unifications = new THashMap(); Type requiredType = getType(); if(DEBUG) - System.out.println("EAmbigious.filterActive with " + requiredType); + System.out.println("EAmbigious.filterActive with " + requiredType.toStringSkeleton()); for(int i=0;i, but no alteratives match the type: "); + b.append(">, but no alternatives match the type: "); for(int i=0;i vars) { - } @Override public Expression resolve(TranslationContext context) { - throw new InternalCompilerError("EAmbiguousConstant should not exist in resolve phase."); + return this; } @Override @@ -189,14 +177,19 @@ public class EAmbiguous extends SimplifiableExpression { if(resolvedExpression != null) return resolvedExpression; else { + if(DEBUG) + System.out.println("EAmbigious.simplify: error"); context.getErrorLog().log(location, getAmbiguousDescription(getType())); return this; } } public void assertResolved(ErrorLog errorLog) { - if(resolvedExpression == null) + if(resolvedExpression == null) { + if(DEBUG) + System.out.println("EAmbigious.assertResolved: error"); errorLog.log(location, getAmbiguousDescription(getType())); + } } @Override