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%2FEConstant.java;h=068c6c8741629ef58d5f0b3a508ec3c6439aa5c9;hb=e73c1660b2f4d2a03784451e9e6afe1552b00877;hp=45fb72d6340e1e95bc1cd41f5bfd179b76c14472;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EConstant.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EConstant.java index 45fb72d63..068c6c874 100755 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EConstant.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/expressions/EConstant.java @@ -1,9 +1,5 @@ package org.simantics.scl.compiler.elaboration.expressions; -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.common.names.Name; @@ -35,6 +31,10 @@ import org.simantics.scl.compiler.types.exceptions.MatchException; import org.simantics.scl.compiler.types.util.MultiFunction; import org.simantics.scl.compiler.types.util.TypeUnparsingContext; +import gnu.trove.map.hash.TObjectIntHashMap; +import gnu.trove.set.hash.THashSet; +import gnu.trove.set.hash.TIntHashSet; + public class EConstant extends Expression { SCLValue value; Type[] typeParameters; @@ -232,7 +232,7 @@ public class EConstant extends Expression { return this; } else - return this; + return applyPUnit(context.getCompilationContext()); } @Override @@ -283,4 +283,11 @@ public class EConstant extends Expression { return transformer.transform(this); } + @Override + public boolean equalsExpression(Expression expression) { + if(expression.getClass() != getClass()) + return false; + EConstant other = (EConstant)expression; + return value == other.value && Types.equals(typeParameters, other.typeParameters); + } }