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=6320ecb3f75e3a29ed620ca5425ca22ef88a5496;hp=09cbcf25bf2557e5f48d82a04ae494455684008a;hpb=747231cca0974ca9ed5f78caa6517ee9dcb8e4fc;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 09cbcf25b..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,20 +39,6 @@ public class EAmbiguous extends SimplifiableExpression { this.activeCount = alternatives.length; } - @Override - public void collectRefs(TObjectIntHashMap allRefs, - TIntHashSet refs) { - } - - @Override - public void collectVars(TObjectIntHashMap allVars, - TIntHashSet vars) { - } - - @Override - public void forVariables(VariableProcedure procedure) { - } - @Override protected void updateType() throws MatchException { throw new InternalCompilerError(); @@ -73,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 @@ -188,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 @@ -203,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