X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Felaboration%2Futils%2FForcedClosure.java;h=31c755c46a3d26da2389c28cb623eb5de38ab9d8;hb=e3cd3cd49bc2585f57d030a8743f9012f6161a92;hp=e965b26acd82b0086243217109711e703f03c80b;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/utils/ForcedClosure.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/utils/ForcedClosure.java index e965b26ac..31c755c46 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/utils/ForcedClosure.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/utils/ForcedClosure.java @@ -1,25 +1,25 @@ -package org.simantics.scl.compiler.internal.elaboration.utils; - -import org.simantics.scl.compiler.elaboration.expressions.EApply; -import org.simantics.scl.compiler.elaboration.expressions.EApplyType; -import org.simantics.scl.compiler.elaboration.expressions.ELiteral; -import org.simantics.scl.compiler.elaboration.expressions.ESimpleLambda; -import org.simantics.scl.compiler.elaboration.expressions.Expression; -import org.simantics.scl.compiler.elaboration.expressions.Expressions; -import org.simantics.scl.compiler.elaboration.java.ApplyUnit; -import org.simantics.scl.compiler.types.Types; - -public class ForcedClosure { - - public static Expression forceClosure(Expression expression, boolean doIt) { - if(!doIt) - return expression; - else - return new EApply(expression.location, - expression.getEffect(), - new EApplyType(new ELiteral(ApplyUnit.INSTANCE), expression.getType()), - new ESimpleLambda(expression.getEffect(), - Expressions.newBlankVar(Types.PUNIT), expression)); - } - -} +package org.simantics.scl.compiler.internal.elaboration.utils; + +import org.simantics.scl.compiler.elaboration.expressions.EApply; +import org.simantics.scl.compiler.elaboration.expressions.EApplyType; +import org.simantics.scl.compiler.elaboration.expressions.ELiteral; +import org.simantics.scl.compiler.elaboration.expressions.ESimpleLambda; +import org.simantics.scl.compiler.elaboration.expressions.Expression; +import org.simantics.scl.compiler.elaboration.expressions.Expressions; +import org.simantics.scl.compiler.elaboration.java.ApplyUnit; +import org.simantics.scl.compiler.types.Types; + +public class ForcedClosure { + + public static Expression forceClosure(Expression expression, boolean doIt) { + if(!doIt) + return expression; + else + return new EApply(expression.location, + expression.getEffect(), + new EApplyType(new ELiteral(ApplyUnit.INSTANCE), expression.getType()), + new ESimpleLambda(expression.getEffect(), + Expressions.newBlankVar(Types.PUNIT), expression)); + } + +}