Commit f82ad822 authored by André Pacak's avatar André Pacak

check that record type contains the same labels as record term (checking for same length)

parent bd0db9af
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
</node> </node>
<node concept="1JAXSW" id="75UymJIFIuu" role="2EAAKa"> <node concept="1JAXSW" id="75UymJIFIuu" role="2EAAKa">
<property role="TrG5h" value="c" /> <property role="TrG5h" value="c" />
<node concept="1SCrvP" id="75UymJIFIuR" role="1JAXS8" /> <node concept="1SCrvP" id="6UqcbF4u0HN" role="1JAXS8" />
</node> </node>
</node> </node>
<node concept="228e09" id="75UymJIFIsm" role="1SCrrM"> <node concept="228e09" id="75UymJIFIsm" role="1SCrrM">
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
<classNode dependClassName="RecordTypes_Checker.model.Typing_LookupFailureQuerySpecification" /> <classNode dependClassName="RecordTypes_Checker.model.Typing_LookupFailureQuerySpecification" />
<classNode dependClassName="RecordTypes_Checker.model.Typing_MatchFunFailureQuerySpecification" /> <classNode dependClassName="RecordTypes_Checker.model.Typing_MatchFunFailureQuerySpecification" />
<classNode dependClassName="RecordTypes_Checker.model.Typing_MatchRecordFailureQuerySpecification" /> <classNode dependClassName="RecordTypes_Checker.model.Typing_MatchRecordFailureQuerySpecification" />
<classNode dependClassName="RecordTypes_Checker.model.Typing_RecordSameLengthFailureQuerySpecification" />
<classNode dependClassName="io.usethesource.capsule.Map" /> <classNode dependClassName="io.usethesource.capsule.Map" />
<classNode dependClassName="java.lang.Object" /> <classNode dependClassName="java.lang.Object" />
<classNode dependClassName="java.lang.String" /> <classNode dependClassName="java.lang.String" />
...@@ -873,6 +874,73 @@ ...@@ -873,6 +874,73 @@
<classNode dependClassName="org.inca.core.runtime.plugin.MPSQuerySpecificationHints" /> <classNode dependClassName="org.inca.core.runtime.plugin.MPSQuerySpecificationHints" />
<classNode extendsClassName="org.inca.core.runtime.plugin.MPSQuerySpecification" /> <classNode extendsClassName="org.inca.core.runtime.plugin.MPSQuerySpecification" />
</dependency> </dependency>
<dependency className="RecordTypes_Checker.model.Typing_RecordEntriesQuerySpecification">
<classNode dependClassName="RecordTypes_Checker.model.QuerySpecificationHints" />
<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.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.ConceptFeatureKey" />
<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_RecordEntryCountQuerySpecification">
<classNode dependClassName="RecordTypes_Checker.model.QuerySpecificationHints" />
<classNode dependClassName="RecordTypes_Checker.model.Typing_RecordEntriesQuerySpecification" />
<classNode dependClassName="java.lang.Class" />
<classNode dependClassName="java.lang.Integer" />
<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.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.PatternMatchCounter" />
<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_RecordSameLengthFailureQuerySpecification"> <dependency className="RecordTypes_Checker.model.Typing_RecordSameLengthFailureQuerySpecification">
<classNode dependClassName="RecordTypes_Checker.model.QuerySpecificationHints" /> <classNode dependClassName="RecordTypes_Checker.model.QuerySpecificationHints" />
<classNode dependClassName="RecordTypes_Checker.model.Typing_RecordSameLengthFailure_0_switchCommonQuerySpecification" /> <classNode dependClassName="RecordTypes_Checker.model.Typing_RecordSameLengthFailure_0_switchCommonQuerySpecification" />
...@@ -902,6 +970,7 @@ ...@@ -902,6 +970,7 @@
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Equality" /> <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.ExportedParameter" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation" /> <classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExpressionEvaluation" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.Inequality" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.PositivePatternCall" /> <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.basicenumerables.TypeConstraint" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter" /> <classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.queries.PParameter" />
...@@ -917,8 +986,13 @@ ...@@ -917,8 +986,13 @@
<dependency className="RecordTypes_Checker.model.Typing_RecordSameLengthFailure_0_switchCommonQuerySpecification"> <dependency className="RecordTypes_Checker.model.Typing_RecordSameLengthFailure_0_switchCommonQuerySpecification">
<classNode dependClassName="RecordTypes_Checker.model.LType" /> <classNode dependClassName="RecordTypes_Checker.model.LType" />
<classNode dependClassName="RecordTypes_Checker.model.QuerySpecificationHints" /> <classNode dependClassName="RecordTypes_Checker.model.QuerySpecificationHints" />
<classNode dependClassName="RecordTypes_Checker.model.Typing_RecordEntryCountQuerySpecification" />
<classNode dependClassName="RecordTypes_Checker.model.Typing_RequiredQuerySpecification" /> <classNode dependClassName="RecordTypes_Checker.model.Typing_RequiredQuerySpecification" />
<classNode dependClassName="java.lang.Class" /> <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.Override" />
<classNode dependClassName="java.lang.String" /> <classNode dependClassName="java.lang.String" />
<classNode dependClassName="java.lang.SuppressWarnings" /> <classNode dependClassName="java.lang.SuppressWarnings" />
...@@ -932,10 +1006,14 @@ ...@@ -932,10 +1006,14 @@
<classNode dependClassName="org.eclipse.viatra.query.runtime.api.ViatraQueryEngine" /> <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.api.scope.QueryScope" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.exception.ViatraQueryException" /> <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.PBody" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.PVariable" /> <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.Equality" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicdeferred.ExportedParameter" /> <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.PositivePatternCall" />
<classNode dependClassName="org.eclipse.viatra.query.runtime.matchers.psystem.basicenumerables.TypeConstraint" /> <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.PParameter" />
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="-7y1d0oo9x9aaa5olbwqqjva1bksxjb2"> <product version="3" modelHash="165kuhqrgdagnnh7kx2dq4c4zapa769">
<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" /> <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_RecordEntriesQuerySpecification.java:Typing_RecordEntryCountQuerySpecification.java:Typing_RecordSameLengthFailureQuerySpecification.java:Typing_RecordSameLengthFailure_0_switchCommonQuerySpecification.java:Typing_RequiredQuerySpecification.java:Typing_Required_0_switchCommonQuerySpecification.java" />
</product> </product>
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<product version="3" modelHash="687u1umiwy49egdujyz1uzx7z9606c7" /> <product version="3" modelHash="-4mpi09misgbbjpj3ednaen24tqdn3i4" />
...@@ -37,6 +37,7 @@ public class AnalysisResultAccess { ...@@ -37,6 +37,7 @@ public class AnalysisResultAccess {
final ViatraQueryMatcher<IPatternMatch> evaluatorMatchFunFailure = EnginePool.getMatcher(Typing_MatchFunFailureQuerySpecification.instance(), AbstractScope.from(scope), true, ScatteredTimelyReteBackendFactory.INSTANCE); final ViatraQueryMatcher<IPatternMatch> evaluatorMatchFunFailure = EnginePool.getMatcher(Typing_MatchFunFailureQuerySpecification.instance(), AbstractScope.from(scope), true, ScatteredTimelyReteBackendFactory.INSTANCE);
final ViatraQueryMatcher<IPatternMatch> evaluatorMatchRecordFailure = EnginePool.getMatcher(Typing_MatchRecordFailureQuerySpecification.instance(), AbstractScope.from(scope), true, ScatteredTimelyReteBackendFactory.INSTANCE); final ViatraQueryMatcher<IPatternMatch> evaluatorMatchRecordFailure = EnginePool.getMatcher(Typing_MatchRecordFailureQuerySpecification.instance(), AbstractScope.from(scope), true, ScatteredTimelyReteBackendFactory.INSTANCE);
final ViatraQueryMatcher<IPatternMatch> evaluatorLookupFailure = EnginePool.getMatcher(Typing_LookupFailureQuerySpecification.instance(), AbstractScope.from(scope), true, ScatteredTimelyReteBackendFactory.INSTANCE); final ViatraQueryMatcher<IPatternMatch> evaluatorLookupFailure = EnginePool.getMatcher(Typing_LookupFailureQuerySpecification.instance(), AbstractScope.from(scope), true, ScatteredTimelyReteBackendFactory.INSTANCE);
final ViatraQueryMatcher<IPatternMatch> evaluatorRecordSameLengthFailure = EnginePool.getMatcher(Typing_RecordSameLengthFailureQuerySpecification.instance(), AbstractScope.from(scope), true, ScatteredTimelyReteBackendFactory.INSTANCE);
final IPatternMatch tup = evaluatorInfer.newMatch(term, null); final IPatternMatch tup = evaluatorInfer.newMatch(term, null);
final Set<LType.LTypeElement> inferValues = CodeGenerationHelper.getAllValues(evaluatorInfer, "out_1", tup); final Set<LType.LTypeElement> inferValues = CodeGenerationHelper.getAllValues(evaluatorInfer, "out_1", tup);
...@@ -44,8 +45,9 @@ public class AnalysisResultAccess { ...@@ -44,8 +45,9 @@ public class AnalysisResultAccess {
boolean matchFunFailure = CollectionSequence.fromCollection(evaluatorMatchFunFailure.getAllMatches()).isNotEmpty(); boolean matchFunFailure = CollectionSequence.fromCollection(evaluatorMatchFunFailure.getAllMatches()).isNotEmpty();
boolean matchRecordFailure = CollectionSequence.fromCollection(evaluatorMatchRecordFailure.getAllMatches()).isNotEmpty(); boolean matchRecordFailure = CollectionSequence.fromCollection(evaluatorMatchRecordFailure.getAllMatches()).isNotEmpty();
boolean lookupFailure = CollectionSequence.fromCollection(evaluatorLookupFailure.getAllMatches()).isNotEmpty(); boolean lookupFailure = CollectionSequence.fromCollection(evaluatorLookupFailure.getAllMatches()).isNotEmpty();
boolean recordSameLengthFailure = CollectionSequence.fromCollection(evaluatorRecordSameLengthFailure.getAllMatches()).isNotEmpty();
if (checkError || matchFunFailure || matchRecordFailure || lookupFailure) { if (checkError || matchFunFailure || matchRecordFailure || lookupFailure || recordSameLengthFailure) {
return false; return false;
} }
...@@ -56,18 +58,18 @@ public class AnalysisResultAccess { ...@@ -56,18 +58,18 @@ public class AnalysisResultAccess {
boolean isBotAvailable = SetSequence.fromSet(inferValues).any(new IWhereFilter<LType.LTypeElement>() { boolean isBotAvailable = SetSequence.fromSet(inferValues).any(new IWhereFilter<LType.LTypeElement>() {
public boolean accept(LType.LTypeElement it) { public boolean accept(LType.LTypeElement it) {
{ {
final Object[] values_a0a0a0t0c = {it}; final Object[] values_a0a0a0v0c = {it};
// declare the local variables for the case matchers // declare the local variables for the case matchers
Map<String, Object> case_0_a0a0a0a91a2; Map<String, Object> case_0_a0a0a0a12a2;
Map<String, Object> case_1_b0a0a0a91a2; Map<String, Object> case_1_b0a0a0a12a2;
if ((case_0_a0a0a0a91a2 = new SequenceMatcher(matcher_a0a0a0a0t0c).match(values_a0a0a0t0c)) != null) { if ((case_0_a0a0a0a12a2 = new SequenceMatcher(matcher_a0a0a0a0v0c).match(values_a0a0a0v0c)) != null) {
return true; return true;
} else if ((case_1_b0a0a0a91a2 = new SequenceMatcher(WildCardMatcher.INSTANCE).match(values_a0a0a0t0c)) != null) { } else if ((case_1_b0a0a0a12a2 = new SequenceMatcher(WildCardMatcher.INSTANCE).match(values_a0a0a0v0c)) != null) {
return false; return false;
} else { } else {
throw new PatternMatcherException(values_a0a0a0t0c); throw new PatternMatcherException(values_a0a0a0v0c);
} }
} }
} }
...@@ -80,21 +82,21 @@ public class AnalysisResultAccess { ...@@ -80,21 +82,21 @@ public class AnalysisResultAccess {
final LType.LTypeElement nonBotAnyValue = SetSequence.fromSet(inferValues).findFirst(new IWhereFilter<LType.LTypeElement>() { final LType.LTypeElement nonBotAnyValue = SetSequence.fromSet(inferValues).findFirst(new IWhereFilter<LType.LTypeElement>() {
public boolean accept(LType.LTypeElement it) { public boolean accept(LType.LTypeElement it) {
{ {
final Object[] values_a0a0a0x0c = {it}; final Object[] values_a0a0a0z0c = {it};
// declare the local variables for the case matchers // declare the local variables for the case matchers
Map<String, Object> case_0_a0a0a0a32a2; Map<String, Object> case_0_a0a0a0a52a2;
Map<String, Object> case_1_b0a0a0a32a2; Map<String, Object> case_1_b0a0a0a52a2;
Map<String, Object> case_2_c0a0a0a32a2; Map<String, Object> case_2_c0a0a0a52a2;
if ((case_0_a0a0a0a32a2 = new SequenceMatcher(matcher_a0a0a0a0x0c).match(values_a0a0a0x0c)) != null) { if ((case_0_a0a0a0a52a2 = new SequenceMatcher(matcher_a0a0a0a0z0c).match(values_a0a0a0z0c)) != null) {
return false; return false;
} else if ((case_1_b0a0a0a32a2 = new SequenceMatcher(matcher_a1a0a0a0x0c).match(values_a0a0a0x0c)) != null) { } else if ((case_1_b0a0a0a52a2 = new SequenceMatcher(matcher_a1a0a0a0z0c).match(values_a0a0a0z0c)) != null) {
return false; return false;
} else if ((case_2_c0a0a0a32a2 = new SequenceMatcher(WildCardMatcher.INSTANCE).match(values_a0a0a0x0c)) != null) { } else if ((case_2_c0a0a0a52a2 = new SequenceMatcher(WildCardMatcher.INSTANCE).match(values_a0a0a0z0c)) != null) {
return true; return true;
} else { } else {
throw new PatternMatcherException(values_a0a0a0x0c); throw new PatternMatcherException(values_a0a0a0z0c);
} }
} }
} }
...@@ -188,9 +190,9 @@ public class AnalysisResultAccess { ...@@ -188,9 +190,9 @@ public class AnalysisResultAccess {
} }
} }
private static final IDataMatcher matcher_a0a0a0a0t0c = new CompositeMatcher(LType.Bot.class); private static final IDataMatcher matcher_a0a0a0a0v0c = new CompositeMatcher(LType.Bot.class);
private static final IDataMatcher matcher_a0a0a0a0x0c = new CompositeMatcher(LType.Bot.class); private static final IDataMatcher matcher_a0a0a0a0z0c = new CompositeMatcher(LType.Bot.class);
private static final IDataMatcher matcher_a1a0a0a0x0c = new CompositeMatcher(LType.Any.class); private static final IDataMatcher matcher_a1a0a0a0z0c = new CompositeMatcher(LType.Any.class);
private static final IDataMatcher matcher_a0a0e_0 = new CompositeMatcher(LType.Nat.class); private static final IDataMatcher matcher_a0a0e_0 = new CompositeMatcher(LType.Nat.class);
private static final IDataMatcher matcher_a1a0e = new CompositeMatcher(LType.Fun.class); private static final IDataMatcher matcher_a1a0e = new CompositeMatcher(LType.Fun.class);
private static final IDataMatcher matcher_a2a0e_0 = new CompositeMatcher(LType.Record.class, new SimpleMatcher("ltypev")); private static final IDataMatcher matcher_a2a0e_0 = new CompositeMatcher(LType.Record.class, new SimpleMatcher("ltypev"));
......
...@@ -638,6 +638,27 @@ public class LType implements ILatticeOperationProvider<LType.LTypeElement>, IPo ...@@ -638,6 +638,27 @@ public class LType implements ILatticeOperationProvider<LType.LTypeElement>, IPo
} }
} }
} }
public int recordSize(LType.LTypeElement t) {
{
final Object[] values_a0w = {t};
// declare the local variables for the case matchers
Map<String, Object> case_0_a0a22;
Map<String, Object> case_1_b0a22;
Map<String, Object> case_2_c0a22;
if ((case_0_a0a22 = new SequenceMatcher(matcher_a0a0w).match(values_a0w)) != null) {
LTypeRecord.LTypeRecordElement ty_a0a0a22 = (LTypeRecord.LTypeRecordElement) case_0_a0a22.get("ty");
return LTypeRecord.instance().size(ty_a0a0a22);
} else if ((case_1_b0a22 = new SequenceMatcher(matcher_a1a0w).match(values_a0w)) != null) {
return Integer.MAX_VALUE;
} else if ((case_2_c0a22 = new SequenceMatcher(WildCardMatcher.INSTANCE).match(values_a0w)) != null) {
return Integer.MIN_VALUE;
} else {
throw new PatternMatcherException(values_a0w);
}
}
}
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 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) { public LType.LTypeElement invoke(final LType.LTypeElement left, final LType.LTypeElement right) {
...@@ -731,4 +752,6 @@ public class LType implements ILatticeOperationProvider<LType.LTypeElement>, IPo ...@@ -731,4 +752,6 @@ public class LType implements ILatticeOperationProvider<LType.LTypeElement>, IPo
private static final IDataMatcher matcher_a1a0s = new CompositeMatcher(LType.Any.class); private static final IDataMatcher matcher_a1a0s = new CompositeMatcher(LType.Any.class);
private static final IDataMatcher matcher_a0a0u = new CompositeMatcher(LType.Record.class, new SimpleMatcher("ty")); private static final IDataMatcher matcher_a0a0u = new CompositeMatcher(LType.Record.class, new SimpleMatcher("ty"));
private static final IDataMatcher matcher_a1a0u = new CompositeMatcher(LType.Any.class); private static final IDataMatcher matcher_a1a0u = new CompositeMatcher(LType.Any.class);
private static final IDataMatcher matcher_a0a0w = new CompositeMatcher(LType.Record.class, new SimpleMatcher("ty"));
private static final IDataMatcher matcher_a1a0w = new CompositeMatcher(LType.Any.class);
} }
...@@ -29,33 +29,33 @@ public final class QuerySpecificationHints extends MPSQuerySpecificationHints { ...@@ -29,33 +29,33 @@ public final class QuerySpecificationHints extends MPSQuerySpecificationHints {
this.concepts.add(MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x10802efe25aL, "jetbrains.mps.lang.core.structure.BaseConcept")); this.concepts.add(MetaAdapterFactory.getConcept(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x10802efe25aL, "jetbrains.mps.lang.core.structure.BaseConcept"));
this.dataTypes = new HashSet<SDataType>(); this.dataTypes = new HashSet<SDataType>();
this.dataTypes.add(UniqueDataType.from("jetbrains.mps.lang.core.structure.integer"));
this.dataTypes.add(UniqueDataType.from("jetbrains.mps.lang.core.structure.string")); this.dataTypes.add(UniqueDataType.from("jetbrains.mps.lang.core.structure.string"));
this.dataTypes.add(UniqueDataType.from("jetbrains.mps.lang.core.structure.integer"));
this.conceptFeatures = new HashSet<SConceptFeature>(); this.conceptFeatures = new HashSet<SConceptFeature>();
this.conceptFeatures.add(MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name")); this.conceptFeatures.add(MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb936bL, 0x1a4a252762eb9378L, "t2")); this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9390L, 0x1a4a252762eb9395L, "ty1"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9302L, 0x1a4a252762eb9307L, "t1")); this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802c6L, 0x1fd8e2cf9df802cbL, "elems"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb936bL, 0x1a4a252762eb9374L, "t1"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9302L, 0x1a4a252762eb930bL, "t2")); this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9302L, 0x1a4a252762eb930bL, "t2"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb933aL, 0x1a4a252762eb9352L, "body")); this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb933aL, 0x1a4a252762eb9352L, "body"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9312L, 0x1a4a252762eb931bL, "t2"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb92d7L, 0x1a4a252762eb92dcL, "t"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x9229981a3b8f573L, 0x9229981a3b8f58bL, "entries"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9302L, 0x1a4a252762eb9307L, "t1"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9390L, 0x1a4a252762eb9399L, "ty2"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb93faL, 0x1a4a252762eb93ffL, "ty")); this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb93faL, 0x1a4a252762eb93ffL, "ty"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb937fL, 0x1a4a252762eb9384L, "t"));
this.conceptFeatures.add(MetaAdapterFactory.getReferenceLink(0xb802a05692a24fbcL, 0x902ef8e5004c331fL, 0x7980b687ac7456feL, 0x7980b687ac7456ffL, "parent")); this.conceptFeatures.add(MetaAdapterFactory.getReferenceLink(0xb802a05692a24fbcL, 0x902ef8e5004c331fL, 0x7980b687ac7456feL, 0x7980b687ac7456ffL, "parent"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb92d7L, 0x1a4a252762eb92dcL, "t")); this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb937fL, 0x1a4a252762eb9384L, "t"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb937fL, 0x1a4a252762eb93d5L, "ty")); this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb937fL, 0x1a4a252762eb93d5L, "ty"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9312L, 0x1a4a252762eb9317L, "t1")); this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb936bL, 0x1a4a252762eb9378L, "t2"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x9229981a3b8f61cL, 0x9229981a3b8f621L, "t"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x2c4ed3ae43d50d92L, 0x2c4ed3ae43d50da6L, "t"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb933aL, 0x1a4a252762eb934eL, "bound")); this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb933aL, 0x1a4a252762eb934eL, "bound"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb936bL, 0x1a4a252762eb9374L, "t1"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x9229981a3b8f573L, 0x9229981a3b8f58bL, "entries"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9390L, 0x1a4a252762eb9399L, "ty2"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802c6L, 0x1fd8e2cf9df802cbL, "elems"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802cfL, 0x1fd8e2cf9df802d4L, "ty"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9322L, 0x1a4a252762eb9336L, "t")); this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9322L, 0x1a4a252762eb9336L, "t"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9390L, 0x1a4a252762eb9395L, "ty1"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x2c4ed3ae43d50d92L, 0x2c4ed3ae43d50da6L, "t"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x9229981a3b8f61cL, 0x9229981a3b8f621L, "t"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9312L, 0x1a4a252762eb931bL, "t2"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb93f1L, 0x1a4a252762eb93f6L, "t")); this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb93f1L, 0x1a4a252762eb93f6L, "t"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1a4a252762eb9312L, 0x1a4a252762eb9317L, "t1"));
this.conceptFeatures.add(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802cfL, 0x1fd8e2cf9df802d4L, "ty"));
this.languages = new HashSet<SLanguage>(); this.languages = new HashSet<SLanguage>();
this.languages.add(MetaAdapterFactory.getLanguage(0xb802a05692a24fbcL, 0x902ef8e5004c331fL, "ceab5195-25ea-4f22-9b92-103b95ca8c0c")); this.languages.add(MetaAdapterFactory.getLanguage(0xb802a05692a24fbcL, 0x902ef8e5004c331fL, "ceab5195-25ea-4f22-9b92-103b95ca8c0c"));
......
...@@ -89,14 +89,14 @@ public final class Typing_AsLTypeRecordQuerySpecification extends MPSQuerySpecif ...@@ -89,14 +89,14 @@ public final class Typing_AsLTypeRecordQuerySpecification extends MPSQuerySpecif
exportedParameters.add(new ExportedParameter(body, var_out_1, p_out_1)); exportedParameters.add(new ExportedParameter(body, var_out_1, p_out_1));
body.setSymbolicParameters(exportedParameters); body.setSymbolicParameters(exportedParameters);
PVariable var__7969736069302798609 = body.newVirtualVariable(); PVariable var__6395623258575569158 = body.getOrCreateVariableByName("6395623258575569158");
PVariable var__7969736069302798604 = body.getOrCreateVariableByName("7969736069302798604"); PVariable var__6395623258575569161 = body.getOrCreateVariableByName("6395623258575569161");
PVariable var__7969736069302798601 = body.getOrCreateVariableByName("7969736069302798601"); PVariable var__6395623258575569166 = body.newVirtualVariable();
new TypeConstraint(body, Tuples.flatTupleOf(var_type), new ConceptKey(MetaAdapterFactory.getConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802c6L, "RecordTypes.structure.RecordType"))); new TypeConstraint(body, Tuples.flatTupleOf(var_type), new ConceptKey(MetaAdapterFactory.getConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802c6L, "RecordTypes.structure.RecordType")));
new PositivePatternCall(body, Tuples.flatTupleOf(var_type, var__7969736069302798601), Typing_AsLTypeRecord_WrappedQuerySpecification.instance().getInternalQueryRepresentation()); new PositivePatternCall(body, Tuples.flatTupleOf(var_type, var__6395623258575569158), Typing_AsLTypeRecord_WrappedQuerySpecification.instance().getInternalQueryRepresentation());
new AggregatorConstraint(new BoundAggregator(LTypeRecord.instance().aggregator_lub, LTypeRecord.LTypeRecordElement.class, LTypeRecord.LTypeRecordElement.class), body, Tuples.flatTupleOf(var_type, var__7969736069302798604), Typing_AsLTypeRecord_WrappedQuerySpecification.instance().getInternalQueryRepresentation(), var__7969736069302798609, 1); new AggregatorConstraint(new BoundAggregator(LTypeRecord.instance().aggregator_lub, LTypeRecord.LTypeRecordElement.class, LTypeRecord.LTypeRecordElement.class), body, Tuples.flatTupleOf(var_type, var__6395623258575569161), Typing_AsLTypeRecord_WrappedQuerySpecification.instance().getInternalQueryRepresentation(), var__6395623258575569166, 1);
new Equality(body, var_out_1, var__7969736069302798609); new Equality(body, var_out_1, var__6395623258575569166);
SetSequence.fromSet(bodies).addElement(body); SetSequence.fromSet(bodies).addElement(body);
} }
......
...@@ -93,29 +93,29 @@ public final class Typing_AsLTypeRecord_WrappedQuerySpecification extends MPSQue ...@@ -93,29 +93,29 @@ public final class Typing_AsLTypeRecord_WrappedQuerySpecification extends MPSQue
body.setSymbolicParameters(exportedParameters); body.setSymbolicParameters(exportedParameters);
PVariable var__tmp_250 = body.getOrCreateVariableByName("tmp_250"); PVariable var__tmp_250 = body.getOrCreateVariableByName("tmp_250");
PVariable var__tmp_249 = body.getOrCreateVariableByName("tmp_249"); PVariable var__tmp_251 = body.getOrCreateVariableByName("tmp_251");
PVariable var__ty = body.getOrCreateVariableByName("ty"); PVariable var__ty = body.getOrCreateVariableByName("ty");
PVariable var__7969736069302824830 = body.newVirtualVariable(); PVariable var__6395623258575592524 = body.newVirtualVariable();
PVariable var__tmp_246 = body.getOrCreateVariableByName("tmp_246");
PVariable var__tmp_247 = body.getOrCreateVariableByName("tmp_247");
PVariable var__tmp_248 = body.getOrCreateVariableByName("tmp_248");
PVariable var__elem = body.getOrCreateVariableByName("elem"); PVariable var__elem = body.getOrCreateVariableByName("elem");
PVariable var__tmp_252 = body.getOrCreateVariableByName("tmp_252");
PVariable var__l = body.getOrCreateVariableByName("l"); PVariable var__l = body.getOrCreateVariableByName("l");
PVariable var__tmp_253 = body.getOrCreateVariableByName("tmp_253");
PVariable var__tmp_254 = body.getOrCreateVariableByName("tmp_254");
new TypeConstraint(body, Tuples.flatTupleOf(var_type), new ConceptKey(MetaAdapterFactory.getConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802c6L, "RecordTypes.structure.RecordType"))); new TypeConstraint(body, Tuples.flatTupleOf(var_type), new ConceptKey(MetaAdapterFactory.getConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802c6L, "RecordTypes.structure.RecordType")));
new PositivePatternCall(body, Tuples.flatTupleOf(), Typing_AsLTypeRecord_0_switchCommonQuerySpecification.instance().getInternalQueryRepresentation()); new PositivePatternCall(body, Tuples.flatTupleOf(), Typing_AsLTypeRecord_0_switchCommonQuerySpecification.instance().getInternalQueryRepresentation());
new TypeConstraint(body, Tuples.staticArityFlatTupleOf(var_type, var__tmp_246), new ConceptFeatureKey(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802c6L, 0x1fd8e2cf9df802cbL, "elems"))); new TypeConstraint(body, Tuples.staticArityFlatTupleOf(var_type, var__tmp_250), new ConceptFeatureKey(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802c6L, 0x1fd8e2cf9df802cbL, "elems")));
new Equality(body, var__elem, var__tmp_246); new Equality(body, var__elem, var__tmp_250);
new TypeConstraint(body, Tuples.staticArityFlatTupleOf(var__elem, var__tmp_247), new ConceptFeatureKey(MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"))); new TypeConstraint(body, Tuples.staticArityFlatTupleOf(var__elem, var__tmp_251), new ConceptFeatureKey(MetaAdapterFactory.getProperty(0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name")));
new Equality(body, var__l, var__tmp_247); new Equality(body, var__l, var__tmp_251);
new TypeConstraint(body, Tuples.staticArityFlatTupleOf(var__elem, var__tmp_248), new ConceptFeatureKey(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802cfL, 0x1fd8e2cf9df802d4L, "ty"))); new TypeConstraint(body, Tuples.staticArityFlatTupleOf(var__elem, var__tmp_252), new ConceptFeatureKey(MetaAdapterFactory.getContainmentLink(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802cfL, 0x1fd8e2cf9df802d4L, "ty")));
new PositivePatternCall(body, Tuples.flatTupleOf(var__tmp_248, var__tmp_249), Typing_AsLTypeQuerySpecification.instance().getInternalQueryRepresentation()); new PositivePatternCall(body, Tuples.flatTupleOf(var__tmp_252, var__tmp_253), Typing_AsLTypeQuerySpecification.instance().getInternalQueryRepresentation());
new Equality(body, var__ty, var__tmp_249); new Equality(body, var__ty, var__tmp_253);
new ExpressionEvaluation(body, new IExpressionEvaluator() { new ExpressionEvaluation(body, new IExpressionEvaluator() {
@Override @Override
public String getShortDescription() { public String getShortDescription() {
return "7969736069302824830"; return "6395623258575592524";
} }
@Override @Override
...@@ -128,9 +128,9 @@ public final class Typing_AsLTypeRecord_WrappedQuerySpecification extends MPSQue ...@@ -128,9 +128,9 @@ public final class Typing_AsLTypeRecord_WrappedQuerySpecification extends MPSQue
return LTypeRecord.instance().singleton((CodeGenerationHelper.demandWrapString(valueProvider.getValue("l"))), ((LType.LTypeElement) valueProvider.getValue("ty"))); return LTypeRecord.instance().singleton((CodeGenerationHelper.demandWrapString(valueProvider.getValue("l"))), ((LType.LTypeElement) valueProvider.getValue("ty")));
} }
}, var__7969736069302824830, false); }, var__6395623258575592524, false);
new Equality(body, var__tmp_250, var__7969736069302824830); new Equality(body, var__tmp_254, var__6395623258575592524);
new Equality(body, var__tmp_250, var_out_1); new Equality(body, var__tmp_254, var_out_1);
SetSequence.fromSet(bodies).addElement(body); SetSequence.fromSet(bodies).addElement(body);
} }
...@@ -144,8 +144,8 @@ public final class Typing_AsLTypeRecord_WrappedQuerySpecification extends MPSQue ...@@ -144,8 +144,8 @@ public final class Typing_AsLTypeRecord_WrappedQuerySpecification extends MPSQue
exportedParameters.add(new ExportedParameter(body, var_out_1, p_out_1)); exportedParameters.add(new ExportedParameter(body, var_out_1, p_out_1));
body.setSymbolicParameters(exportedParameters); body.setSymbolicParameters(exportedParameters);
PVariable var__tmp_251 = body.getOrCreateVariableByName("tmp_251"); PVariable var__6395623258575592542 = body.newVirtualVariable();
PVariable var__7969736069302824848 = body.newVirtualVariable(); PVariable var__tmp_255 = body.getOrCreateVariableByName("tmp_255");
new TypeConstraint(body, Tuples.flatTupleOf(var_type), new ConceptKey(MetaAdapterFactory.getConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802c6L, "RecordTypes.structure.RecordType"))); new TypeConstraint(body, Tuples.flatTupleOf(var_type), new ConceptKey(MetaAdapterFactory.getConcept(0x6b642eaa1043424aL, 0x9e0949eb41607114L, 0x1fd8e2cf9df802c6L, "RecordTypes.structure.RecordType")));
new PositivePatternCall(body, Tuples.flatTupleOf(), Typing_AsLTypeRecord_0_switchCommonQuerySpecification.instance().getInternalQueryRepresentation()); new PositivePatternCall(body, Tuples.flatTupleOf(), Typing_AsLTypeRecord_0_switchCommonQuerySpecification.instance().getInternalQueryRepresentation());
...@@ -153,7 +153,7 @@ public final class Typing_AsLTypeRecord_WrappedQuerySpecification extends MPSQue ...@@ -153,7 +153,7 @@ public final class Typing_AsLTypeRecord_WrappedQuerySpecification extends MPSQue
@Override @Override
public String getShortDescription() { public String getShortDescription() {
return "7969736069302824848"; return "6395623258575592542";
}