package jetbrains.mps.baseLanguage.tuples.typesystem;
/*Generated by MPS */
import jetbrains.mps.lang.typesystem.runtime.BaseHelginsDescriptor;
import jetbrains.mps.lang.typesystem.runtime.InferenceRule_Runtime;
import jetbrains.mps.lang.typesystem.runtime.NonTypesystemRule_Runtime;
import jetbrains.mps.lang.typesystem.runtime.SubtypingRule_Runtime;
import jetbrains.mps.lang.typesystem.runtime.ComparisonRule_Runtime;
import jetbrains.mps.lang.typesystem.runtime.InequationReplacementRule_Runtime;
public class TypesystemDescriptor extends BaseHelginsDescriptor {
public TypesystemDescriptor() {
{
InferenceRule_Runtime inferenceRule = new typeof_IndexedTupleLiteral_InferenceRule();
this.myInferenceRules.add(inferenceRule);
}
{
InferenceRule_Runtime inferenceRule = new typeof_IndexedTupleMemberAccessExpression_InferenceRule();
this.myInferenceRules.add(inferenceRule);
}
{
InferenceRule_Runtime inferenceRule = new typeof_NamedTupleComponentAccessOperation_InferenceRule();
this.myInferenceRules.add(inferenceRule);
}
{
InferenceRule_Runtime inferenceRule = new typeof_NamedTupleLiteral_InferenceRule();
this.myInferenceRules.add(inferenceRule);
}
{
NonTypesystemRule_Runtime nonTypesystemRule = new check_NamedTupleDeclaration_extends_NonTypesystemRule();
this.myNonTypesystemRules.add(nonTypesystemRule);
}
{
NonTypesystemRule_Runtime nonTypesystemRule = new check_NamedTupleType_NonTypesystemRule();
this.myNonTypesystemRules.add(nonTypesystemRule);
}
{
NonTypesystemRule_Runtime nonTypesystemRule = new check_TupleComponentIsInScope_NonTypesystemRule();
this.myNonTypesystemRules.add(nonTypesystemRule);
}
{
SubtypingRule_Runtime subtypingRule = new NamedTuple_subtypeOf_extended_SubtypingRule();
this.mySubtypingRules.add(subtypingRule);
}
{
SubtypingRule_Runtime subtypingRule = new NamedTuple_subtypeOf_implemented_interfaces_SubtypingRule();
this.mySubtypingRules.add(subtypingRule);
}
{
SubtypingRule_Runtime subtypingRule = new Tuple_classifier_supertypeOf_indexedTupleType_SubtypingRule();
this.mySubtypingRules.add(subtypingRule);
}
{
SubtypingRule_Runtime subtypingRule = new indexedTupleType_supertypeOf_namedTupleType_SubtypingRule();
this.mySubtypingRules.add(subtypingRule);
}
{
SubtypingRule_Runtime subtypingRule = new namedTupleDeclaration_ClassifierType_subtypeOf_namedTupleType_SubtypingRule();
this.mySubtypingRules.add(subtypingRule);
}
{
SubtypingRule_Runtime subtypingRule = new namedTupleDeclaration_ClassifierType_supertypeOf_namedTupleType_SubtypingRule();
this.mySubtypingRules.add(subtypingRule);
}
{
ComparisonRule_Runtime comparisonRule = new comparable_IndexedTupleType_Object_ComparisonRule();
this.myComparisonRules.add(comparisonRule);
}
{
ComparisonRule_Runtime comparisonRule = new comparable_NamedTupleType_Object_ComparisonRule();
this.myComparisonRules.add(comparisonRule);
}
{
InequationReplacementRule_Runtime eliminationRule = new indexedTuple_assignableTo_indexedTuple_InequationReplacementRule();
this.myInequationReplacementRules.add(eliminationRule);
}
{
InequationReplacementRule_Runtime eliminationRule = new namedTuple_assignableTo_namedTuple_InequationReplacementRule();
this.myInequationReplacementRules.add(eliminationRule);
}
}
}