Commit bd0db9af authored by André Pacak's avatar André Pacak
Browse files

changed back to previous lattice order, still works

parent fffa4ce8
trace.info text merge=mps
generated text merge=mps
dependencies text merge=mps
*.mpl text merge=mps
*.msd text merge=mps
*.devkit text merge=mps
*.mpr text merge=mps
*.mpsr text merge=mps
*.model text merge=mps
*.mps text merge=mps
This diff is collapsed.
......@@ -68,7 +68,6 @@
<concept id="6368683143941319361" name="org.inca.fun.structure.PatternFunctionModule" flags="ng" index="3TKv5i" />
<concept id="6368683143941346282" name="org.inca.fun.structure.PatternFunctionAnonymousParameter" flags="ng" index="3TL$xT" />
<concept id="5458164179963309291" name="org.inca.fun.structure.PatternFunctionParameter" flags="ng" index="1VLyuc" />
<concept id="6151553526979403292" name="org.inca.fun.structure.PatternFunctionComment" flags="ng" index="1XdyHb" />
<concept id="6151553526979403289" name="org.inca.fun.structure.PatternFunctionEmptyContent" flags="ng" index="1XdyHe" />
</language>
<language id="e6d2ffd5-9c56-41f8-99ac-9d1ceb13daa2" name="org.inca.data">
......@@ -367,9 +366,6 @@
<concept id="4530729936991344605" name="org.inca.core.structure.IPatternBody" flags="ng" index="1dubk2">
<child id="4530729936991965471" name="contents" index="1dgzf0" />
</concept>
<concept id="4530729936991344618" name="org.inca.core.structure.Comment" flags="ng" index="1dubkP">
<property id="4530729936991344628" name="text" index="1dubkF" />
</concept>
<concept id="4530729936991344019" name="org.inca.core.structure.IPatternModule" flags="ng" index="1dubtc">
<child id="4530729936991344607" name="contents" index="1dubk0" />
</concept>
......@@ -694,7 +690,7 @@
</node>
</node>
</node>
<node concept="1XdyHe" id="75UymJHJLmI" role="1dubk0" />
<node concept="1XdyHe" id="2YwSXDdGi_d" role="1dubk0" />
<node concept="3zyOaB" id="75UymJHJM2s" role="1dubk0">
<property role="TrG5h" value="lookupFailure" />
<node concept="3zV_Rz" id="75UymJHJM2t" role="3zVECS">
......@@ -1471,18 +1467,26 @@
<property role="TrG5h" value="entry" />
</node>
</node>
<node concept="34odk1" id="6UqcbF4rSZX" role="1dgzf0">
<node concept="2kdhWc" id="6UqcbF4rW2p" role="34ocZk">
<node concept="727y6" id="6UqcbF4rZ2B" role="3zVzRQ">
<ref role="3zVwH9" to="oj0p:2LeOUT3PgQA" resolve="t" />
</node>
<node concept="30NkWi" id="6UqcbF4rW2h" role="2kdhYM">
<ref role="XkjO9" node="75UymJI7e1L" resolve="entry" />
</node>
</node>
<node concept="30KbLJ" id="6UqcbF4rN27" role="34ocZn">
<property role="TrG5h" value="t" />
</node>
</node>
<node concept="34ocy7" id="75UymJI7xvg" role="1dgzf0">
<node concept="34ofUU" id="75UymJI7Hw0" role="34ocs8">
<node concept="30NkWi" id="75UymJI7JU7" role="34ocZk">
<ref role="XkjO9" node="75UymJHJKgm" resolve="term" />
</node>
<node concept="2kdhWc" id="75UymJI7zRh" role="34ocZn">
<node concept="727y6" id="75UymJI7F9Z" role="3zVzRQ">
<ref role="3zVwH9" to="oj0p:2LeOUT3PgQA" resolve="t" />
</node>
<node concept="30NkWi" id="75UymJI7zR9" role="2kdhYM">
<ref role="XkjO9" node="75UymJI7e1L" resolve="entry" />
</node>
<node concept="30NkWi" id="6UqcbF4s50t" role="34ocZn">
<ref role="XkjO9" node="6UqcbF4rN27" resolve="t" />
</node>
</node>
</node>
......@@ -1887,17 +1891,25 @@
<property role="TrG5h" value="entry" />
</node>
</node>
<node concept="34odk1" id="6UqcbF4sham" role="1dgzf0">
<node concept="2kdhWc" id="6UqcbF4sk9E" role="34ocZk">
<node concept="727y6" id="6UqcbF4sn6H" role="3zVzRQ">
<ref role="3zVwH9" to="oj0p:2LeOUT3PgQA" resolve="t" />
</node>
<node concept="30NkWi" id="6UqcbF4sk9y" role="2kdhYM">
<ref role="XkjO9" node="75UymJIc0rp" resolve="entry" />
</node>
</node>
<node concept="30KbLJ" id="6UqcbF4sbdG" role="34ocZn">
<property role="TrG5h" value="t" />
</node>
</node>
<node concept="30Nfyg" id="75UymJIctnO" role="1dgzf0">
<node concept="2k1GkI" id="75UymJIcvYc" role="30Nf_D">
<node concept="2k1_uq" id="75UymJIcvYa" role="2nKVj6">
<ref role="2nKBpL" node="75UymJI8RMF" resolve="allvars" />
<node concept="2kdhWc" id="75UymJIcyx1" role="2nKBpO">
<node concept="727y6" id="75UymJIc_7u" role="3zVzRQ">
<ref role="3zVwH9" to="oj0p:2LeOUT3PgQA" resolve="t" />
</node>
<node concept="30NkWi" id="75UymJIcywU" role="2kdhYM">
<ref role="XkjO9" node="75UymJIc0rp" resolve="entry" />
</node>
<node concept="30NkWi" id="6UqcbF4st8u" role="2nKBpO">
<ref role="XkjO9" node="6UqcbF4sbdG" resolve="t" />
</node>
</node>
</node>
......@@ -2473,9 +2485,6 @@
</node>
</node>
<node concept="3_zGKi" id="75UymJHZQof" role="3_zGzd">
<node concept="1XdyHb" id="2YwSXDdCWmb" role="1dgzf0">
<property role="1dubkF" value="TODO: need check that ty and entries are of the same length" />
</node>
<node concept="34odk1" id="75UymJI02S8" role="1dgzf0">
<node concept="2k1GkI" id="75UymJI04DM" role="34ocZk">
<node concept="2k1_uq" id="75UymJI04DK" role="2nKVj6">
......@@ -2529,16 +2538,24 @@
<property role="TrG5h" value="lty" />
</node>
</node>
<node concept="34odk1" id="6UqcbF4sJv2" role="1dgzf0">
<node concept="2kdhWc" id="6UqcbF4sMx9" role="34ocZk">
<node concept="727y6" id="6UqcbF4sPy5" role="3zVzRQ">
<ref role="3zVwH9" to="oj0p:2LeOUT3PgQA" resolve="t" />
</node>
<node concept="30NkWi" id="6UqcbF4sMx1" role="2kdhYM">
<ref role="XkjO9" node="75UymJI0ff1" resolve="entry" />
</node>
</node>
<node concept="30KbLJ" id="6UqcbF4sD8C" role="34ocZn">
<property role="TrG5h" value="t" />
</node>
</node>
<node concept="2k1GkI" id="75UymJI0o6K" role="1dgzf0">
<node concept="2k1_uq" id="75UymJI0o6I" role="2nKVj6">
<ref role="2nKBpL" node="75UymJHJJJx" resolve="check" />
<node concept="2kdhWc" id="75UymJI0rBW" role="2nKBpO">
<node concept="727y6" id="75UymJI0ton" role="3zVzRQ">
<ref role="3zVwH9" to="oj0p:2LeOUT3PgQA" resolve="t" />
</node>
<node concept="30NkWi" id="75UymJI0pRj" role="2kdhYM">
<ref role="XkjO9" node="75UymJI0ff1" resolve="entry" />
</node>
<node concept="30NkWi" id="6UqcbF4sVvL" role="2nKBpO">
<ref role="XkjO9" node="6UqcbF4sD8C" resolve="t" />
</node>
</node>
</node>
......@@ -3094,18 +3111,26 @@
<property role="TrG5h" value="entry" />
</node>
</node>
<node concept="34odk1" id="6UqcbF4t51l" role="1dgzf0">
<node concept="2kdhWc" id="6UqcbF4t83t" role="34ocZk">
<node concept="727y6" id="6UqcbF4tb38" role="3zVzRQ">
<ref role="3zVwH9" to="oj0p:2LeOUT3PgQA" resolve="t" />
</node>
<node concept="30NkWi" id="6UqcbF4t83l" role="2kdhYM">
<ref role="XkjO9" node="75UymJHY2kE" resolve="entry" />
</node>
</node>
<node concept="30KbLJ" id="6UqcbF4t1Qt" role="34ocZn">
<property role="TrG5h" value="t" />
</node>
</node>
<node concept="34ocy7" id="75UymJHYecq" role="1dgzf0">
<node concept="34ofUU" id="75UymJHYmG7" role="34ocs8">
<node concept="30NkWi" id="75UymJHYopN" role="34ocZk">
<ref role="XkjO9" node="75UymJHJJTo" resolve="term" />
</node>
<node concept="2kdhWc" id="75UymJHYjjs" role="34ocZn">
<node concept="727y6" id="75UymJHYl0F" role="3zVzRQ">
<ref role="3zVwH9" to="oj0p:2LeOUT3PgQA" resolve="t" />
</node>
<node concept="30NkWi" id="75UymJHYjjk" role="2kdhYM">
<ref role="XkjO9" node="75UymJHY2kE" resolve="entry" />
</node>
<node concept="30NkWi" id="6UqcbF4th3x" role="34ocZn">
<ref role="XkjO9" node="6UqcbF4t1Qt" resolve="t" />
</node>
</node>
</node>
......@@ -3452,7 +3477,7 @@
<ref role="2ZQB93" node="75UymJHJhQC" resolve="LTypeRecord" />
</node>
<node concept="2kHsid" id="2YwSXDd_Gvu" role="iwB5b">
<ref role="2kHsi0" node="75UymJHJFn7" resolve="glb" />
<ref role="2kHsi0" node="75UymJHJFn7" resolve="lub" />
</node>
</node>
</node>
......@@ -3460,6 +3485,9 @@
<node concept="C6Zt3" id="75UymJHJJu2" role="xaH5_">
<ref role="ws7DW" node="75UymJHJgBw" resolve="LType" />
</node>
<node concept="C6Zt3" id="2YwSXDdHH_c" role="xaH5_">
<ref role="ws7DW" node="75UymJHJhQC" resolve="LTypeRecord" />
</node>
</node>
<node concept="3U8wA7" id="75UymJHJgBw">
<property role="TrG5h" value="LType" />
......@@ -3819,7 +3847,7 @@
<ref role="3_Jajq" node="75UymJHJhQC" resolve="LTypeRecord" />
</node>
<node concept="1i8UFo" id="75UymJHJRfm" role="1p_StM">
<ref role="2RnLXx" node="75UymJHJFn7" resolve="glb" />
<ref role="2RnLXx" node="75UymJHJFn7" resolve="lub" />
<node concept="37vLTw" id="75UymJHJRkv" role="2ZRyFy">
<ref role="3cqZAo" node="75UymJHJQNj" resolve="lty" />
</node>
......@@ -4022,7 +4050,7 @@
<ref role="3_Jajq" node="75UymJHJhQC" resolve="LTypeRecord" />
</node>
<node concept="1i8UFo" id="75UymJHJV$E" role="1p_StM">
<ref role="2RnLXx" node="1ZoSGYurnH9" resolve="lub" />
<ref role="2RnLXx" node="1ZoSGYurnH9" resolve="glb" />
<node concept="37vLTw" id="75UymJHJVFx" role="2ZRyFy">
<ref role="3cqZAo" node="75UymJHJV2a" resolve="lty" />
</node>
......@@ -4507,8 +4535,8 @@
<node concept="3Tm1VV" id="75UymJHJkzl" role="1B3o_S" />
<node concept="3clFbS" id="75UymJHJkzm" role="3clF47">
<node concept="3cpWs6" id="75UymJHJk$i" role="3cqZAp">
<node concept="1i8UFo" id="75UymJKVo0r" role="3cqZAk">
<ref role="2RnLXx" node="75UymJHJlZu" resolve="empty" />
<node concept="2ZRyFJ" id="2YwSXDdHPkM" role="3cqZAk">
<ref role="2ZRyFH" node="75UymJHJhR7" resolve="AnyRecord" />
</node>
</node>
</node>
......@@ -4522,8 +4550,8 @@
<node concept="3Tm1VV" id="75UymJHJlzx" role="1B3o_S" />
<node concept="3clFbS" id="75UymJHJlzy" role="3clF47">
<node concept="3cpWs6" id="75UymJHJqp2" role="3cqZAp">
<node concept="2ZRyFJ" id="75UymJKVpCB" role="3cqZAk">
<ref role="2ZRyFH" node="75UymJHJhR7" resolve="AnyRecord" />
<node concept="1i8UFo" id="2YwSXDdHPlc" role="3cqZAk">
<ref role="2RnLXx" node="75UymJHJlZu" resolve="empty" />
</node>
</node>
</node>
......@@ -4663,7 +4691,9 @@
<node concept="3_zGKh" id="75UymJHKnF8" role="3_zGzc">
<node concept="3clFbS" id="75UymJHKnFa" role="3LOtAQ">
<node concept="3cpWs6" id="75UymJHKnGz" role="3cqZAp">
<node concept="3clFbT" id="75UymJHKnGY" role="3cqZAk" />
<node concept="3clFbT" id="75UymJHKnGY" role="3cqZAk">
<property role="3clFbU" value="true" />
</node>
</node>
</node>
<node concept="3_$9zU" id="75UymJHKnFy" role="3_$9z$" />
......@@ -4676,9 +4706,7 @@
<node concept="3_zGKh" id="75UymJHKnHY" role="3_zGzc">
<node concept="3clFbS" id="75UymJHKnI0" role="3LOtAQ">
<node concept="3cpWs6" id="75UymJHKnKm" role="3cqZAp">
<node concept="3clFbT" id="75UymJHKnKN" role="3cqZAk">
<property role="3clFbU" value="true" />
</node>
<node concept="3clFbT" id="75UymJHKnKN" role="3cqZAk" />
</node>
</node>
<node concept="3__aGB" id="75UymJHKnJm" role="3_$9z$">
......@@ -4690,14 +4718,9 @@
</node>
<node concept="3_zGKh" id="75UymJHKnMP" role="3_zGzc">
<node concept="3clFbS" id="75UymJHKnMR" role="3LOtAQ">
<node concept="3SKdUt" id="2YwSXDdASoP" role="3cqZAp">
<node concept="3SKdUq" id="2YwSXDdASoR" role="3SKWNk">
<property role="3SKdUp" value="is this method needed? when we only need glb or lub" />
</node>
</node>
<node concept="3SKdUt" id="75UymJKWWBC" role="3cqZAp">
<node concept="3SKdUq" id="75UymJKWWBE" role="3SKWNk">
<property role="3SKdUp" value="check if r is top element because we cannot pattern match to check if empty" />
<property role="3SKdUp" value="check if r is bottom element because we cannot pattern match to check if empty" />
</node>
</node>
<node concept="3clFbJ" id="75UymJKWPaK" role="3cqZAp">
......@@ -4713,8 +4736,8 @@
<property role="3cmrfH" value="0" />
</node>
<node concept="2OqwBi" id="75UymJKWQjW" role="3uHU7B">
<node concept="37vLTw" id="75UymJKWP$d" role="2Oq$k0">
<ref role="3cqZAo" node="75UymJHKnSz" resolve="map2" />
<node concept="37vLTw" id="2YwSXDdHSkd" role="2Oq$k0">
<ref role="3cqZAo" node="75UymJHKnPl" resolve="map1" />
</node>
<node concept="liA8E" id="75UymJKWRV6" role="2OqNvi">
<ref role="37wK5l" to="l0z0:~Map.size():int" resolve="size" />
......@@ -4722,35 +4745,6 @@
</node>
</node>
</node>
<node concept="1X3_iC" id="75UymJKWYNy" role="lGtFl">
<property role="3V$3am" value="statement" />
<property role="3V$3ak" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123136/1068581517665" />
<node concept="3clFbJ" id="75UymJHKnXw" role="8Wnug">
<node concept="3y3z36" id="75UymJHKrcs" role="3clFbw">
<node concept="2OqwBi" id="75UymJHKslu" role="3uHU7w">
<node concept="37vLTw" id="75UymJHKrpC" role="2Oq$k0">
<ref role="3cqZAo" node="75UymJHKnSz" resolve="map2" />
</node>
<node concept="liA8E" id="75UymJHKu04" role="2OqNvi">
<ref role="37wK5l" to="l0z0:~Map.size():int" resolve="size" />
</node>
</node>
<node concept="2OqwBi" id="75UymJHKoHD" role="3uHU7B">
<node concept="37vLTw" id="75UymJHKnY2" role="2Oq$k0">
<ref role="3cqZAo" node="75UymJHKnPl" resolve="map1" />
</node>
<node concept="liA8E" id="75UymJHKqkL" role="2OqNvi">
<ref role="37wK5l" to="l0z0:~Map.size():int" resolve="size" />
</node>
</node>
</node>
<node concept="3clFbS" id="75UymJHKnXy" role="3clFbx">
<node concept="3cpWs6" id="75UymJHKufy" role="3cqZAp">
<node concept="3clFbT" id="75UymJHKug1" role="3cqZAk" />
</node>
</node>
</node>
</node>
<node concept="3cpWs8" id="75UymJHKvA1" role="3cqZAp">
<node concept="3cpWsn" id="75UymJHKvA4" role="3cpWs9">
<property role="TrG5h" value="it" />
......@@ -4823,9 +4817,7 @@
<node concept="3clFbJ" id="75UymJJxHh3" role="3cqZAp">
<node concept="3clFbS" id="75UymJJxHh5" role="3clFbx">
<node concept="3cpWs6" id="75UymJJxHM4" role="3cqZAp">
<node concept="3clFbT" id="75UymJJxHMC" role="3cqZAk">
<property role="3clFbU" value="true" />
</node>
<node concept="3clFbT" id="75UymJJxHMC" role="3cqZAk" />
</node>
</node>
<node concept="3clFbC" id="75UymJJxHHb" role="3clFbw">
......@@ -4858,9 +4850,7 @@
</node>
<node concept="3clFbS" id="75UymJJxI7O" role="3eOfB_">
<node concept="3cpWs6" id="75UymJJxVYU" role="3cqZAp">
<node concept="3clFbT" id="75UymJJxVZn" role="3cqZAk">
<property role="3clFbU" value="true" />
</node>
<node concept="3clFbT" id="75UymJJxVZn" role="3cqZAk" />
</node>
</node>
</node>
......@@ -4876,7 +4866,9 @@
</node>
</node>
<node concept="3cpWs6" id="75UymJHL0$w" role="3cqZAp">
<node concept="3clFbT" id="75UymJHL1jw" role="3cqZAk" />
<node concept="3clFbT" id="75UymJHL1jw" role="3cqZAk">
<property role="3clFbU" value="true" />
</node>
</node>
</node>
<node concept="3__aGB" id="75UymJHKnOn" role="3_$9z$">
......@@ -4921,7 +4913,7 @@
</node>
<node concept="2slB5m" id="75UymJHJFcw" role="_iOnB" />
<node concept="hMdjl" id="75UymJHJFn7" role="_iOnB">
<property role="TrG5h" value="glb" />
<property role="TrG5h" value="lub" />
<node concept="2ZQB9c" id="75UymJHJFMm" role="3clF45">
<ref role="2ZQB93" node="75UymJHJhQC" resolve="LTypeRecord" />
</node>
......@@ -5180,7 +5172,7 @@
</node>
<node concept="2slB5m" id="75UymJHN4dA" role="_iOnB" />
<node concept="hMdjl" id="1ZoSGYurnH9" role="_iOnB">
<property role="TrG5h" value="lub" />
<property role="TrG5h" value="glb" />
<node concept="2ZQB9c" id="75UymJHMN4O" role="3clF45">
<ref role="2ZQB93" node="75UymJHJhQC" resolve="LTypeRecord" />
</node>
......
......@@ -873,6 +873,82 @@
<classNode dependClassName="org.inca.core.runtime.plugin.MPSQuerySpecificationHints" />
<classNode extendsClassName="org.inca.core.runtime.plugin.MPSQuerySpecification" />
</dependency>
<dependency className="RecordTypes_Checker.model.Typing_RecordSameLengthFailureQuerySpecification">
<classNode dependClassName="RecordTypes_Checker.model.QuerySpecificationHints" />
<classNode dependClassName="RecordTypes_Checker.model.Typing_RecordSameLengthFailure_0_switchCommonQuerySpecification" />
<classNode dependClassName="java.lang.Class" />
<classNode dependClassName="java.lang.Exception" />
<classNode dependClassName="java.lang.Integer" />
<classNode dependClassName="java.lang.Iterable" />
<classNode dependClassName="java.lang.Object" />
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="java.lang.String" />
<classNode dependClassName="java.lang.SuppressWarnings" />
<classNode dependClassName="java.util.ArrayList" />
<classNode dependClassName="java.util.Arrays" />
<classNode dependClassName="java.util.HashSet" />
<classNode dependClassName="java.util.List" />
<classNode dependClassName="java.util.Set" />
<classNode dependClassName="jetbrains.mps.internal.collections.runtime.SetSequence" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.api.ViatraQueryEngine" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.api.scope.QueryScope" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.exception.ViatraQueryException" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.context.common.JavaTransitiveInstancesKey" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.IExpressionEvaluator" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.IValueProvider" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.PBody" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.PVariable" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.queries.QueryInitializationException" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.tuple.Tuples" />
<classNode dependClassName="org.inca.core.runtime.plugin.AbstractPQuery" />
<classNode dependClassName="org.inca.core.runtime.plugin.AbstractScope" />
<classNode dependClassName="org.inca.core.runtime.plugin.ConceptKey" />
<classNode dependClassName="org.inca.core.runtime.plugin.MPSGenericPatternMatcher" />
<classNode dependClassName="org.inca.core.runtime.plugin.MPSQuerySpecificationHints" />
<classNode extendsClassName="org.inca.core.runtime.plugin.MPSQuerySpecification" />
</dependency>
<dependency className="RecordTypes_Checker.model.Typing_RecordSameLengthFailure_0_switchCommonQuerySpecification">
<classNode dependClassName="RecordTypes_Checker.model.LType" />
<classNode dependClassName="RecordTypes_Checker.model.QuerySpecificationHints" />
<classNode dependClassName="RecordTypes_Checker.model.Typing_RequiredQuerySpecification" />
<classNode dependClassName="java.lang.Class" />
<classNode dependClassName="java.lang.Override" />
<classNode dependClassName="java.lang.String" />
<classNode dependClassName="java.lang.SuppressWarnings" />
<classNode dependClassName="java.util.ArrayList" />
<classNode dependClassName="java.util.Arrays" />
<classNode dependClassName="java.util.HashSet" />
<classNode dependClassName="java.util.List" />
<classNode dependClassName="java.util.Set" />
<classNode dependClassName="jetbrains.mps.internal.collections.runtime.SetSequence" />
<classNode dependClassName="jetbrains.mps.smodel.adapter.structure.MetaAdapterFactory" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.api.ViatraQueryEngine" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.api.scope.QueryScope" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.exception.ViatraQueryException" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.PBody" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.PVariable" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.queries.QueryInitializationException" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.tuple.Tuples" />
<classNode dependClassName="org.inca.core.runtime.plugin.AbstractPQuery" />
<classNode dependClassName="org.inca.core.runtime.plugin.AbstractScope" />
<classNode dependClassName="org.inca.core.runtime.plugin.ConceptKey" />
<classNode dependClassName="org.inca.core.runtime.plugin.MPSGenericPatternMatcher" />
<classNode dependClassName="org.inca.core.runtime.plugin.MPSQuerySpecificationHints" />
<classNode dependClassName="org.inca.data.runtime.plugin.LatticeInputKey" />
<classNode extendsClassName="org.inca.core.runtime.plugin.MPSQuerySpecification" />
</dependency>
<dependency className="RecordTypes_Checker.model.Typing_RequiredQuerySpecification">
<classNode dependClassName="RecordTypes_Checker.model.LType" />
<classNode dependClassName="RecordTypes_Checker.model.QuerySpecificationHints" />
......
<?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="-6xiqm3brhiiyw11q2rnom4t5fb1kwpa">
<files names="AnalysisResultAccess.java:ConstantDefinitions.java:LType.java:LTypeRecord.java:QuerySpecificationHints.java:Typing_AllvarsQuerySpecification.java:Typing_Allvars_0_switchCommonQuerySpecification.java:Typing_AsLTypeQuerySpecification.java:Typing_AsLTypeRecordQuerySpecification.java:Typing_AsLTypeRecord_0_switchCommonQuerySpecification.java:Typing_AsLTypeRecord_WrappedQuerySpecification.java:Typing_AsLType_0_switchCommonQuerySpecification.java:Typing_CheckErrorQuerySpecification.java:Typing_CheckQuerySpecification.java:Typing_Check_0_switchCommonQuerySpecification.java:Typing_InferQuerySpecification.java:Typing_Infer_0_switchCommonQuerySpecification.java:Typing_Infer_WrappedQuerySpecification.java:Typing_LookupFailureQuerySpecification.java:Typing_LookupFailure_0_switchCommonQuerySpecification.java:Typing_LookupQuerySpecification.java:Typing_Lookup_0_switchCommonQuerySpecification.java:Typing_MatchFunFailureQuerySpecification.java:Typing_MatchFunFailure_0_switchCommonQuerySpecification.java:Typing_MatchRecordFailureQuerySpecification.java:Typing_MatchRecordFailure_0_switchCommonQuerySpecification.java:Typing_RequiredQuerySpecification.java:Typing_Required_0_switchCommonQuerySpecification.java" />
<product version="3" modelHash="-7y1d0oo9x9aaa5olbwqqjva1bksxjb2">
<files names="AnalysisResultAccess.java:ConstantDefinitions.java:LType.java:LTypeRecord.java:QuerySpecificationHints.java:Typing_AllvarsQuerySpecification.java:Typing_Allvars_0_switchCommonQuerySpecification.java:Typing_AsLTypeQuerySpecification.java:Typing_AsLTypeRecordQuerySpecification.java:Typing_AsLTypeRecord_0_switchCommonQuerySpecification.java:Typing_AsLTypeRecord_WrappedQuerySpecification.java:Typing_AsLType_0_switchCommonQuerySpecification.java:Typing_CheckErrorQuerySpecification.java:Typing_CheckQuerySpecification.java:Typing_Check_0_switchCommonQuerySpecification.java:Typing_InferQuerySpecification.java:Typing_Infer_0_switchCommonQuerySpecification.java:Typing_Infer_WrappedQuerySpecification.java:Typing_LookupFailureQuerySpecification.java:Typing_LookupFailure_0_switchCommonQuerySpecification.java:Typing_LookupQuerySpecification.java:Typing_Lookup_0_switchCommonQuerySpecification.java:Typing_MatchFunFailureQuerySpecification.java:Typing_MatchFunFailure_0_switchCommonQuerySpecification.java:Typing_MatchRecordFailureQuerySpecification.java:Typing_MatchRecordFailure_0_switchCommonQuerySpecification.java:Typing_RecordSameLengthFailureQuerySpecification.java:Typing_RecordSameLengthFailure_0_switchCommonQuerySpecification.java:Typing_RequiredQuerySpecification.java:Typing_Required_0_switchCommonQuerySpecification.java" />
</product>
......@@ -465,7 +465,7 @@ public class LType implements ILatticeOperationProvider<LType.LTypeElement>, IPo
} else if ((case_6_g0a6 = new SequenceMatcher(matcher_a6a0g, matcher_b6a0g).match(values_a0g)) != null) {
LTypeRecord.LTypeRecordElement rty_a1g0a6 = (LTypeRecord.LTypeRecordElement) case_6_g0a6.get("rty");
LTypeRecord.LTypeRecordElement lty_a0g0a6 = (LTypeRecord.LTypeRecordElement) case_6_g0a6.get("lty");
return LType.Record.create(LTypeRecord.instance().glb(lty_a0g0a6, rty_a1g0a6));
return LType.Record.create(LTypeRecord.instance().lub(lty_a0g0a6, rty_a1g0a6));
} else {
throw new PatternMatcherException(values_a0g);
}
......@@ -504,7 +504,7 @@ public class LType implements ILatticeOperationProvider<LType.LTypeElement>, IPo
} else if ((case_6_g0a8 = new SequenceMatcher(matcher_a6a0i, matcher_b6a0i).match(values_a0i)) != null) {
LTypeRecord.LTypeRecordElement rty_a1g0a8 = (LTypeRecord.LTypeRecordElement) case_6_g0a8.get("rty");
LTypeRecord.LTypeRecordElement lty_a0g0a8 = (LTypeRecord.LTypeRecordElement) case_6_g0a8.get("lty");
return LType.Record.create(LTypeRecord.instance().lub(lty_a0g0a8, rty_a1g0a8));
return LType.Record.create(LTypeRecord.instance().glb(lty_a0g0a8, rty_a1g0a8));
} else if ((case_7_h0a8 = new SequenceMatcher(WildCardMatcher.INSTANCE, WildCardMatcher.INSTANCE).match(values_a0i)) != null) {
return LType.Bot.create();
} else {
......@@ -639,6 +639,21 @@ public class LType implements ILatticeOperationProvider<LType.LTypeElement>, IPo
}
}
public final IMultisetAggregationOperator<?, ?, ?> aggregator_lub = new AbstractTreeBasedLatticeAggregationOperator<LType.LTypeElement>(new AugmentedNodeFactory<LType.LTypeElement>(new _FunctionTypes._return_P2_E0<LType.LTypeElement, LType.LTypeElement, LType.LTypeElement>() {
public LType.LTypeElement invoke(final LType.LTypeElement left, final LType.LTypeElement right) {
return lub(left, right);
}
})) {
@Override
public String getName() {
return "aggregator_lub";
}
@Override
public String getShortDescription() {
return "aggregator_lub";
}
};
public final IMultisetAggregationOperator<?, ?, ?> aggregator_glb = new AbstractTreeBasedLatticeAggregationOperator<LType.LTypeElement>(new AugmentedNodeFactory<LType.LTypeElement>(new _FunctionTypes._return_P2_E0<LType.LTypeElement, LType.LTypeElement, LType.LTypeElement>() {
public LType.LTypeElement invoke(final LType.LTypeElement left, final LType.LTypeElement right) {
return glb(left, right);
......
......@@ -197,10 +197,10 @@ public class LTypeRecord implements ILatticeOperationProvider<LTypeRecord.LTypeR
}
public LTypeRecord.LTypeRecordElement top() {
return LTypeRecord.instance().empty();
return LTypeRecord.AnyRecord.create();
}
public LTypeRecord.LTypeRecordElement bot() {
return LTypeRecord.AnyRecord.create();
return LTypeRecord.instance().empty();
}
public LTypeRecord.LTypeRecordElement empty() {
return LTypeRecord.FinRecord.create(Map.Immutable.<String,LType.LTypeElement>of());
......@@ -228,63 +228,63 @@ public class LTypeRecord implements ILatticeOperationProvider<LTypeRecord.LTypeR
}
public boolean leq(LTypeRecord.LTypeRecordElement l, LTypeRecord.LTypeRecordElement r) {
{
final Object[] values_a0k_0 = {l, r};
final Object[] values_a0l = {l, r};
// declare the local variables for the case matchers
java.util.Map<String, Object> case_0_a0a01_0;
java.util.Map<String, Object> case_1_b0a01_0;
java.util.Map<String, Object> case_2_c0a01_0;
java.util.Map<String, Object> case_0_a0a11;
java.util.Map<String, Object> case_1_b0a11;
java.util.Map<String, Object> case_2_c0a11;
if ((case_0_a0a01_0 = new SequenceMatcher(WildCardMatcher.INSTANCE, matcher_b0a0k).match(values_a0k_0)) != null) {
return false;
} else if ((case_1_b0a01_0 = new SequenceMatcher(matcher_a1a0k_0, WildCardMatcher.INSTANCE).match(values_a0k_0)) != null) {
if ((case_0_a0a11 = new SequenceMatcher(WildCardMatcher.INSTANCE, matcher_b0a0l).match(values_a0l)) != null) {
return true;
} else if ((case_2_c0a01_0 = new SequenceMatcher(matcher_a2a0k, matcher_b2a0k).match(values_a0k_0)) != null) {
Map.Immutable<String, LType.LTypeElement> map2_a1c0a01 = (Map.Immutable<String, LType.LTypeElement>) case_2_c0a01_0.get("map2");
Map.Immutable<String, LType.LTypeElement> map1_a0c0a01 = (Map.Immutable<String, LType.LTypeElement>) case_2_c0a01_0.get("map1");
// check if r is top element
if (map2_a1c0a01.size() == 0) {
} else if ((case_1_b0a11 = new SequenceMatcher(matcher_a1a0l, WildCardMatcher.INSTANCE).match(values_a0l)) != null) {
return false;
} else if ((case_2_c0a11 = new SequenceMatcher(matcher_a2a0l, matcher_b2a0l).match(values_a0l)) != null) {
Map.Immutable<String, LType.LTypeElement> map2_a1c0a11 = (Map.Immutable<String, LType.LTypeElement>) case_2_c0a11.get("map2");
Map.Immutable<String, LType.LTypeElement> map1_a0c0a11 = (Map.Immutable<String, LType.LTypeElement>) case_2_c0a11.get("map1");
// is this method needed? when we only need glb or lub
// check if r is top element because we cannot pattern match to check if empty
if (map1_a0c0a11.size() == 0) {
return true;
}
//
Iterator<java.util.Map.Entry<String, LType.LTypeElement>> it = map1_a0c0a01.entryIterator();
Iterator