X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Felaboration%2Fprofiling%2FBranchPointInjector.java;h=eed6d85552c62cf63f4b2028d84fd5990597b0dc;hb=6dfe20b0f514b91337fcac4de0267ffd8268be07;hp=dff4622215473df74bced2f8bcebca7da746dc9a;hpb=eecd74faded034bd067094b42bbac0d286d8d9fa;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..eed6d8555 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,10 +10,10 @@ 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; -import org.simantics.scl.compiler.elaboration.expressions.EEntityTypeAnnotation; import org.simantics.scl.compiler.elaboration.expressions.EError; import org.simantics.scl.compiler.elaboration.expressions.EExternalConstant; import org.simantics.scl.compiler.elaboration.expressions.EFieldAccess; @@ -46,7 +46,6 @@ import org.simantics.scl.compiler.elaboration.expressions.EWhen; import org.simantics.scl.compiler.elaboration.expressions.Expression; import org.simantics.scl.compiler.elaboration.expressions.GuardedExpression; import org.simantics.scl.compiler.elaboration.expressions.GuardedExpressionGroup; -import org.simantics.scl.compiler.elaboration.expressions.StandardExpressionTransformer; import org.simantics.scl.compiler.elaboration.expressions.block.BindStatement; import org.simantics.scl.compiler.elaboration.expressions.block.GuardStatement; import org.simantics.scl.compiler.elaboration.expressions.block.LetStatement; @@ -57,6 +56,7 @@ import org.simantics.scl.compiler.elaboration.expressions.list.ListGuard; import org.simantics.scl.compiler.elaboration.expressions.list.ListQualifier; import org.simantics.scl.compiler.elaboration.expressions.list.ListSeq; import org.simantics.scl.compiler.elaboration.expressions.list.ListThen; +import org.simantics.scl.compiler.elaboration.expressions.visitors.StandardExpressionTransformer; import org.simantics.scl.compiler.elaboration.query.QAlternative; import org.simantics.scl.compiler.elaboration.query.QAtom; import org.simantics.scl.compiler.elaboration.query.QConjunction; @@ -120,7 +120,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; } @@ -197,25 +198,25 @@ public class BranchPointInjector extends StandardExpressionTransformer { } @Override - public Expression transform(EConstant expression) { + public Expression transform(ECHRRuleset expression) { ++codeCounter; return super.transform(expression); } @Override - public Expression transform(ECoveringBranchPoint expression) { + public Expression transform(EConstant expression) { ++codeCounter; return super.transform(expression); } @Override - public Expression transform(EEnforce expression) { + public Expression transform(ECoveringBranchPoint expression) { ++codeCounter; return super.transform(expression); } @Override - public Expression transform(EEntityTypeAnnotation expression) { + public Expression transform(EEnforce expression) { ++codeCounter; return super.transform(expression); }