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%2Fprofiling%2FBranchPointInjector.java;h=3d7350f9f7863bc1cd7e63313d5767ab0505e269;hb=cb5fc8d606d8b322563e9345c441eecfa7f01753;hp=dff4622215473df74bced2f8bcebca7da746dc9a;hpb=3303fe4a3b363e88662ac75a4f7e873ddb3ab352;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/profiling/BranchPointInjector.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/profiling/BranchPointInjector.java index dff462221..3d7350f9f 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/profiling/BranchPointInjector.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/profiling/BranchPointInjector.java @@ -10,6 +10,7 @@ import org.simantics.scl.compiler.elaboration.expressions.EAsPattern; import org.simantics.scl.compiler.elaboration.expressions.EBinary; import org.simantics.scl.compiler.elaboration.expressions.EBind; import org.simantics.scl.compiler.elaboration.expressions.EBlock; +import org.simantics.scl.compiler.elaboration.expressions.ECHRRuleset; import org.simantics.scl.compiler.elaboration.expressions.EConstant; import org.simantics.scl.compiler.elaboration.expressions.ECoveringBranchPoint; import org.simantics.scl.compiler.elaboration.expressions.EEnforce; @@ -120,7 +121,8 @@ public class BranchPointInjector extends StandardExpressionTransformer { ++codeCounter; expression.condition = expression.condition.accept(this); expression.then_ = injectBranchPoint(expression.then_); - expression.else_ = injectBranchPoint(expression.else_); + if(expression.else_ != null) + expression.else_ = injectBranchPoint(expression.else_); return expression; } @@ -196,6 +198,12 @@ public class BranchPointInjector extends StandardExpressionTransformer { return super.transform(expression); } + @Override + public Expression transform(ECHRRuleset expression) { + ++codeCounter; + return super.transform(expression); + } + @Override public Expression transform(EConstant expression) { ++codeCounter;