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=131be5c413e1f9dc652b6b46c763625b30ad8350;hp=2b5c813a13db19dc6591d193353763c2f6c15e97;hpb=80110419efddee4e5eaa0d6f3db4ba69602fb1f9;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 2b5c813a1..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 @@ -179,14 +167,9 @@ public class EAmbiguous extends SimplifiableExpression { location = loc; } - @Override - public void collectEffects(THashSet effects) { - // TODO Auto-generated method stub - } - @Override public void accept(ExpressionVisitor visitor) { - // TODO Auto-generated method stub + visitor.visit(this); } @Override @@ -194,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