]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/profiling/BranchPointInjector.java
Merged changes from feature/scl to master.
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / internal / elaboration / profiling / BranchPointInjector.java
index dff4622215473df74bced2f8bcebca7da746dc9a..3d7350f9f7863bc1cd7e63313d5767ab0505e269 100644 (file)
@@ -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;