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%2Fmatching%2FPatternMatchingCompiler.java;h=62b2ec1aaf4bc9894d14d8dabb957c80b234853f;hp=12bf42e5bed980910034d3aa661938341a743247;hb=9fafa930ec59d0001415f5cff3579456ec38ae65;hpb=f9e11892b65f0bcc1b9e5967101888568eb1f264 diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/matching/PatternMatchingCompiler.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/matching/PatternMatchingCompiler.java index 12bf42e5b..62b2ec1aa 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/matching/PatternMatchingCompiler.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/elaboration/matching/PatternMatchingCompiler.java @@ -17,6 +17,7 @@ import org.simantics.scl.compiler.elaboration.expressions.EVariable; import org.simantics.scl.compiler.elaboration.expressions.EViewPattern; import org.simantics.scl.compiler.elaboration.expressions.Expression; import org.simantics.scl.compiler.elaboration.expressions.GuardedExpressionGroup; +import org.simantics.scl.compiler.elaboration.java.DynamicConstructor; import org.simantics.scl.compiler.elaboration.modules.SCLValue; import org.simantics.scl.compiler.elaboration.modules.TypeConstructor; import org.simantics.scl.compiler.internal.codegen.continuations.Branch; @@ -94,7 +95,7 @@ public class PatternMatchingCompiler { if(constructor_ instanceof EConstant) { SCLValue constructor = ((EConstant)constructor_).getValue(); - ExpressionMatrix matrix = matrixMap.get(constructor.getName()); + ExpressionMatrix matrix = constructor.getValue() == DynamicConstructor.INSTANCE ? null : matrixMap.get(constructor.getName()); if(matrix == null) { CodeWriter newW = w.createBlock(Types.getTypes(parameters)); branches.add(new Branch((Constant)constructor.getValue(), newW.getContinuation()));