]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/profiling/BranchPointInjector.java
(refs #6924) Support for record field access syntax.
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / internal / elaboration / profiling / BranchPointInjector.java
index dff4622215473df74bced2f8bcebca7da746dc9a..6f3ff3be93150e8685e05495f1104173dfd865f6 100644 (file)
@@ -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;
@@ -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);
     }