X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Felaboration%2Fchr%2Frelations%2FSpecialCHRRelation.java;h=8abf73b3eae2827c16efc30d17b302ccfcb243af;hb=3e457239db8dd214a3a10c74c2ecefa0f0f8dd1a;hp=c5dbe3c4190b54cf7aff3c08101168a6b50626b5;hpb=bf540e621923947f9d6f4d5eeef5d05f08373125;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/SpecialCHRRelation.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/SpecialCHRRelation.java index c5dbe3c41..8abf73b3e 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/SpecialCHRRelation.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/chr/relations/SpecialCHRRelation.java @@ -6,11 +6,14 @@ import org.simantics.scl.compiler.types.TVar; import org.simantics.scl.compiler.types.Type; import org.simantics.scl.compiler.types.Types; +import gnu.trove.set.hash.THashSet; + public enum SpecialCHRRelation implements CHRRelation { - EQUALS(A, A), - MEMBER(A, Types.list(A)), - CHECK(Types.BOOLEAN), - EXECUTE(Types.UNIT); + EQUALS(A, A), // only in head + ASSIGN(A, A), // only in body + MEMBER(A, Types.list(A)), // only in head + CHECK(Types.BOOLEAN), // only in head + EXECUTE(Types.UNIT); // only in body private final TVar[] typeVariables; private final Type[] parameterTypes; @@ -33,4 +36,12 @@ public enum SpecialCHRRelation implements CHRRelation { public TPred[] getTypeConstraints() { return TPred.EMPTY_ARRAY; } + + @Override + public void collectEnforceEffects(THashSet effects) { + } + + @Override + public void collectQueryEffects(THashSet effects) { + } }