X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Felaboration%2Futils%2FForcedClosure.java;h=31c755c46a3d26da2389c28cb623eb5de38ab9d8;hp=e965b26acd82b0086243217109711e703f03c80b;hb=refs%2Fchanges%2F38%2F238%2F2;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 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)); + } + +}