package jetbrains.mps.baseLanguage.closures.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_ClosureArgReference_InferenceRule(); this.myInferenceRules.add(inferenceRule); } { InferenceRule_Runtime inferenceRule = new typeof_ClosureControlStatement_InferenceRule(); this.myInferenceRules.add(inferenceRule); } { InferenceRule_Runtime inferenceRule = new typeof_ClosureLiteral_InferenceRule(); this.myInferenceRules.add(inferenceRule); } { InferenceRule_Runtime inferenceRule = new typeof_CompactInvokeFunctionExpression_InferenceRule(); this.myInferenceRules.add(inferenceRule); } { InferenceRule_Runtime inferenceRule = new typeof_InvokeExpression_InferenceRule(); this.myInferenceRules.add(inferenceRule); } { InferenceRule_Runtime inferenceRule = new typeof_InvokeFunctionExpression_InferenceRule(); this.myInferenceRules.add(inferenceRule); } { InferenceRule_Runtime inferenceRule = new typeof_InvokeFunctionOperation_InferenceRule(); this.myInferenceRules.add(inferenceRule); } { InferenceRule_Runtime inferenceRule = new typeof_YieldAllStatement_InferenceRule(); this.myInferenceRules.add(inferenceRule); } { NonTypesystemRule_Runtime nonTypesystemRule = new check_ClosureLiteralDataFlow_NonTypesystemRule(); this.myNonTypesystemRules.add(nonTypesystemRule); } { NonTypesystemRule_Runtime nonTypesystemRule = new check_FunctionType_NonTypesystemRule(); this.myNonTypesystemRules.add(nonTypesystemRule); } { NonTypesystemRule_Runtime nonTypesystemRule = new check_ReturnStatement_NonTypesystemRule(); this.myNonTypesystemRules.add(nonTypesystemRule); } { SubtypingRule_Runtime subtypingRule = new FunctionType_supertypeOf_ClosureLiteralType_SubtypingRule(); this.mySubtypingRules.add(subtypingRule); } { SubtypingRule_Runtime subtypingRule = new supertypesOf_ClassifierType_SubtypingRule(); this.mySubtypingRules.add(subtypingRule); } { SubtypingRule_Runtime subtypingRule = new supertypesOf_ClosureLiteralType_SubtypingRule(); this.mySubtypingRules.add(subtypingRule); } { ComparisonRule_Runtime comparisonRule = new wildcardtype_comparable_ComparisonRule(); this.myComparisonRules.add(comparisonRule); } { InequationReplacementRule_Runtime eliminationRule = new ClosureLiteralType_subtypeOf_ClassifierType_InequationReplacementRule(); this.myInequationReplacementRules.add(eliminationRule); } { InequationReplacementRule_Runtime eliminationRule = new FunctionType_subtypeOf_FunctionType_InequationReplacementRule(); this.myInequationReplacementRules.add(eliminationRule); } { InequationReplacementRule_Runtime eliminationRule = new FunctionType_subtypeOf_Object_InequationReplacementRule(); this.myInequationReplacementRules.add(eliminationRule); } } }