public void applyRule( final SNode getKeysOperation, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode KEY_typevar_1201874360962 = typeCheckingContext.createNewRuntimeTypesVariable(); final SNode VALUE_typevar_1201874371667 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation_Behavior.call_getOperand_1213877410070(getKeysOperation); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1201874387564", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1201874356659", true), (SNode) new typeof_GetKeysOperation_InferenceRule.QuotationClass_z6uv9c_a0a2a0() .createNode( typeCheckingContext.getRepresentative(KEY_typevar_1201874360962), typeCheckingContext.getRepresentative(VALUE_typevar_1201874371667), typeCheckingContext), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = getKeysOperation; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1201874414202", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1201874348006", true), (SNode) new typeof_GetKeysOperation_InferenceRule.QuotationClass_z6uv9c_a0a3a0() .createNode( typeCheckingContext.getRepresentative(KEY_typevar_1201874360962), typeCheckingContext), _info_12389875345); } }
public void applyRule( final SNode mfv, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { if (SNodeOperations.isInstanceOf( SNodeOperations.getParent(mfv), "jetbrains.mps.baseLanguage.collections.structure.MultiForEachPair")) { final SNode INPUT_typevar_8293956702610254515 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget( SNodeOperations.cast( SNodeOperations.getParent(mfv), "jetbrains.mps.baseLanguage.collections.structure.MultiForEachPair"), "input", true); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "7668447476859120466", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_gk7o1k_a0b0a0b( typeCheckingContext.getRepresentative(INPUT_typevar_8293956702610254515)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "8293956702610249719", true), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = mfv; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "8293956702610254522", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "8293956702610254519", true), (SNode) typeCheckingContext.getRepresentative(INPUT_typevar_8293956702610254515), _info_12389875345); } } }
public void applyRule( final SNode operation, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode T_typevar_6981317760235403018 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget( SNodeOperations.cast( SNodeOperations.getParent(operation), "jetbrains.mps.baseLanguage.structure.DotExpression"), "operand", true); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:e115237b-80f4-4ca3-87d6-2ac891492994(jetbrains.mps.execution.settings.typesystem)", "6981317760235403036", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:e115237b-80f4-4ca3-87d6-2ac891492994(jetbrains.mps.execution.settings.typesystem)", "6981317760235403021", true), (SNode) _quotation_createNode_89tbzo_a0b0a( typeCheckingContext.getRepresentative(T_typevar_6981317760235403018)), false, false, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = operation; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:e115237b-80f4-4ca3-87d6-2ac891492994(jetbrains.mps.execution.settings.typesystem)", "6981317760235403009", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:e115237b-80f4-4ca3-87d6-2ac891492994(jetbrains.mps.execution.settings.typesystem)", "6981317760235403006", true), (SNode) _quotation_createNode_89tbzo_a0c0a( typeCheckingContext.getRepresentative(T_typevar_6981317760235403018)), _info_12389875345); } }
public void applyRule( final SNode toIteratorOperation, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { SNode input = RulesFunctions_Collections.getInput(typeCheckingContext, toIteratorOperation); final SNode elementType_typevar_1207236221835 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = input; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "7668447476859120589", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_qlsgpf_a0c0b( typeCheckingContext.getRepresentative(elementType_typevar_1207236221835)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1207236221844", true), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = toIteratorOperation; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1207236274687", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1207236268944", true), (SNode) _quotation_createNode_qlsgpf_a0d0b( typeCheckingContext.getRepresentative(elementType_typevar_1207236221835)), _info_12389875345); } }
public void applyRule( final SNode emunerator, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode elementType_typevar_1237549347223 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation_BehaviorDescriptor.getOperand_idhEwIP$m.invoke(emunerator); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "2762046050488366612", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_jit5ug_a0b0b( typeCheckingContext.getRepresentative(elementType_typevar_1237549347223)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1237549347226", true), false, false, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = emunerator; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1237549347236", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1237549347244", true), (SNode) _quotation_createNode_jit5ug_a0c0b( typeCheckingContext.getRepresentative(elementType_typevar_1237549347223)), _info_12389875345); } }
public void applyRule( final SNode op, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode ELEMENT_TYPE_typevar_3358009230508729162 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation_BehaviorDescriptor.getOperand_idhEwIP$m.invoke(op); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "7668447476859120535", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) IApplicableToNothing_BehaviorDescriptor.expectedOperandType_id5xvLnyYzY1Q.invoke( op, typeCheckingContext.getRepresentative(ELEMENT_TYPE_typevar_3358009230508729162)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "3358009230508729138", true), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = op; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "3358009230508729169", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "3358009230508729166", true), (SNode) typeCheckingContext.getRepresentative(ELEMENT_TYPE_typevar_3358009230508729162), _info_12389875345); } }
public void applyRule( final SNode auo, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode ELEMENT_typevar_2526372162255517322 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation__BehaviorDescriptor.getOperand_idhEwIP$m.invoke(auo); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "7668447476859018469", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_jqf8bk_a0b0b( typeCheckingContext.getRepresentative(ELEMENT_typevar_2526372162255517322)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "7668447476859120404", true), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = auo; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "2526372162255517331", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "2526372162255517328", true), (SNode) typeCheckingContext.typeOf( IOperation__BehaviorDescriptor.getOperand_idhEwIP$m.invoke(auo), "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "2526372162255517336", true), _info_12389875345); } }
public void applyRule( final SNode operation, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode elementType_typevar_1226934681270 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation_Behavior.call_getOperand_1213877410070(operation); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "7668447476859120528", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_econfx_a0b0b( typeCheckingContext.getRepresentative(elementType_typevar_1226934681270)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1226934649738", true), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = operation; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1226934702238", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1226934695674", true), (SNode) _quotation_createNode_econfx_a0c0b(), _info_12389875345); } }
public void applyRule( final SNode hasNext, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode elementType_typevar_1237470988790 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation_Behavior.call_getOperand_1213877410070(hasNext); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1383381939051876063", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_jfdsz3_a0b0b( typeCheckingContext.getRepresentative(elementType_typevar_1237470988790)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1237470932214", true), false, false, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = hasNext; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1237471013663", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1237471009307", true), (SNode) _quotation_createNode_jfdsz3_a0c0b(), _info_12389875345); } }
public void applyRule( final SNode op, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { SNode input = RulesFunctions_Collections.getInput(typeCheckingContext, op); final SNode elementType_typevar_1184847379888 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = input; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "2414346554611884920", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_jdnuju_a0c0b( typeCheckingContext.getRepresentative(elementType_typevar_1184847379888)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1184847389619", true), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = op; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1184847367971", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1184847365040", true), (SNode) _quotation_createNode_jdnuju_a0d0b(), _info_12389875345); } }
public void applyRule( final SNode op, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode elementType_typevar_1227022325815 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation_Behavior.call_getOperand_1213877410070(op); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "7668447476859120474", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) BehaviorReflection.invokeVirtual( (Class<SNode>) ((Class) Object.class), op, "virtual_expectedOperandType_6368025520509018230", new Object[] { typeCheckingContext.getRepresentative(elementType_typevar_1227022325815) }), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1227022309333", true), false, true, _info_12389875345); } if (!(typeCheckingContext.isSingleTypeComputation())) { { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(op, "index", true); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1227022345453", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1227022338592", true), (SNode) _quotation_createNode_y1ttf7_a0c0b(), true, true, _info_12389875345); } } { SNode _nodeToCheck_1029348928467 = op; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1227022501971", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1227022497064", true), (SNode) typeCheckingContext.getRepresentative(elementType_typevar_1227022325815), _info_12389875345); } }
public void applyRule( final SNode op, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { SNode operand = SLinkOperations.getTarget( SNodeOperations.cast( SNodeOperations.getParent(op), MetaAdapterFactory.getConcept( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x116b46a08c4L, "jetbrains.mps.baseLanguage.structure.DotExpression")), MetaAdapterFactory.getContainmentLink( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x116b46a08c4L, 0x116b46a4416L, "operand")); final SNode C_typevar_7453996997717785676 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = operand; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)", "7453996997717785677", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)", "7453996997717785684", false), (SNode) _quotation_createNode_rcqvls_a0c0b( typeCheckingContext.getRepresentative(C_typevar_7453996997717785676)), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = op; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)", "7453996997717785686", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902fe(jetbrains.mps.lang.smodel.typesystem)", "7453996997717785693", true), (SNode) _quotation_createNode_rcqvls_a0d0b( typeCheckingContext.getRepresentative(C_typevar_7453996997717785676)), _info_12389875345); } }
public void applyRule( final SNode wo, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode paramType_typevar_1203177832282 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation_Behavior.call_getOperand_1213877410070(wo); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "2762046050488366454", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_pin8c2_a0b0b( typeCheckingContext.getRepresentative(paramType_typevar_1203177832282)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1225885301838", true), false, true, _info_12389875345); } if (!(typeCheckingContext.isSingleTypeComputation())) { { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(wo, "closure", true); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1225884077242", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1225884077244", true), (SNode) _quotation_createNode_pin8c2_a0c0b( typeCheckingContext.getRepresentative(paramType_typevar_1203177832282)), true, true, _info_12389875345); } } { SNode _nodeToCheck_1029348928467 = wo; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1203177922110", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1203177917787", true), (SNode) _quotation_createNode_pin8c2_a0d0b( typeCheckingContext.getRepresentative(paramType_typevar_1203177832282)), _info_12389875345); } }
public void applyRule( final SNode operation, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode ELEMENT_TYPE_typevar_1240251732387 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation_Behavior.call_getOperand_1213877410070(operation); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "7668447476859120532", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_9sowee_a0b0b( typeCheckingContext.getRepresentative(ELEMENT_TYPE_typevar_1240251732387)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1240251732397", true), false, true, _info_12389875345); } if (!(typeCheckingContext.isSingleTypeComputation())) { { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(operation, "fromElement", true); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1240251732401", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1240251732405", true), (SNode) typeCheckingContext.getRepresentative(ELEMENT_TYPE_typevar_1240251732387), true, true, _info_12389875345); } } if (!(typeCheckingContext.isSingleTypeComputation())) { { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(operation, "toElement", true); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1240251740453", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1240251740457", true), (SNode) typeCheckingContext.getRepresentative(ELEMENT_TYPE_typevar_1240251732387), true, true, _info_12389875345); } } { SNode _nodeToCheck_1029348928467 = operation; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1240251732409", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1240251732417", true), (SNode) _quotation_createNode_9sowee_a0e0b( typeCheckingContext.getRepresentative(ELEMENT_TYPE_typevar_1240251732387)), _info_12389875345); } }
public void applyRule( final SNode tro, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode ELEMENT_typevar_4073682006117732270 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation_Behavior.call_getOperand_1213877410070(tro); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "4073682006117732271", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "4073682006117732273", true), (SNode) new typeof_TestRemoveElementOperation_InferenceRule.QuotationClass_agfpky_a0a1a0() .createNode( typeCheckingContext.getRepresentative(ELEMENT_typevar_4073682006117732270), typeCheckingContext), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(tro, "argument", true); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "4073682006117732283", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "4073682006117732287", true), (SNode) typeCheckingContext.getRepresentative(ELEMENT_typevar_4073682006117732270), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = tro; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "4073682006117732291", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "4073682006117732293", true), (SNode) new typeof_TestRemoveElementOperation_InferenceRule.QuotationClass_agfpky_a0a3a0() .createNode(typeCheckingContext), _info_12389875345); } }
public void applyRule( final SNode minus, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode expressionType_typevar_7602524515424797598 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(minus, "expression", true); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "7602524515424797603", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.getRepresentative(expressionType_typevar_7602524515424797598), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "7602524515424797608", true), _info_12389875345); } { final SNode exType = typeCheckingContext.getRepresentative(expressionType_typevar_7602524515424797598); typeCheckingContext.whenConcrete( exType, new Runnable() { public void run() { SNode type = typeCheckingContext.getOverloadedOperationType( minus, typeCheckingContext.getExpandedNode(exType), _quotation_createNode_2vfzm_c0a0a0c0b()); if (type != null) { { SNode _nodeToCheck_1029348928467 = minus; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "3860149536565525538", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "3860149536565525541", true), (SNode) type, _info_12389875345); } } else { { MessageTarget errorTarget = new NodeMessageTarget(); IErrorReporter _reporter_2309309498 = typeCheckingContext.reportTypeError( minus, "- can't be applied to these operands.", "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "3860149536565525553", null, errorTarget); } } } }, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "3860149536565525509", false, false); } }
public void applyRule( final SNode so, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode sequenceParamType_typevar_1225884177658 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation_BehaviorDescriptor.getOperand_idhEwIP$m.invoke(so); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1611944601324093272", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_jxb36x_a0b0b( typeCheckingContext.getRepresentative(sequenceParamType_typevar_1225884177658)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1225885277159", true), false, true, _info_12389875345); } final SNode resType_typevar_1203177754378 = typeCheckingContext.createNewRuntimeTypesVariable(); final SNode selectorParamType_typevar_1240677567421 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget( so, MetaAdapterFactory.getContainmentLink( 0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x1188372895aL, 0x11883748452L, "closure")); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "2704222862538118755", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_jxb36x_a0e0b( typeCheckingContext.getRepresentative(selectorParamType_typevar_1240677567421), typeCheckingContext.getRepresentative(resType_typevar_1203177754378)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "2704222862538112956", true), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = so; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "6523931710140214764", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) typeCheckingContext.getRepresentative(selectorParamType_typevar_1240677567421), (SNode) typeCheckingContext.getRepresentative(sequenceParamType_typevar_1225884177658), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = so; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1203177774935", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1203177771381", true), (SNode) _quotation_createNode_jxb36x_a0g0b( typeCheckingContext.getRepresentative(resType_typevar_1203177754378)), _info_12389875345); } }
public void applyRule( final SNode containsKeyOperation, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { { SNode _nodeToCheck_1029348928467 = containsKeyOperation; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1201873006966", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1201873003944", true), (SNode) _quotation_createNode_n6vt4l_a0a0b(), _info_12389875345); } final SNode KEY_typevar_1201873088202 = typeCheckingContext.createNewRuntimeTypesVariable(); final SNode VALUE_typevar_1201874216771 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation__BehaviorDescriptor.getOperand_idhEwIP$m.invoke(containsKeyOperation); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "7668447476859120479", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_n6vt4l_a0d0b( typeCheckingContext.getRepresentative(VALUE_typevar_1201874216771), typeCheckingContext.getRepresentative(KEY_typevar_1201873088202)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1201874242447", true), false, true, _info_12389875345); } if (!(typeCheckingContext.isSingleTypeComputation())) { { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget( containsKeyOperation, MetaAdapterFactory.getContainmentLink( 0x8388864671ce4f1cL, 0x9c53c54016f6ad4fL, 0x117b3740258L, 0x117c8321b8fL, "key")); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1201873049497", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1201873021716", true), (SNode) typeCheckingContext.getRepresentative(KEY_typevar_1201873088202), true, true, _info_12389875345); } } }
@InferenceMethod /*package*/ static void equate_outputNodeType_fromSourceQuery( final TypeCheckingContext typeCheckingContext, final SNode query, final SNode TypeToEquate) { if (query == null) { { SNode _nodeToCheck_1029348928467 = null; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902e4(jetbrains.mps.lang.generator.typesystem)", "1206286245992", 0, null); typeCheckingContext.createEquation( (SNode) TypeToEquate, (SNode) _quotation_createNode_w9106s_a0a0a0e(), _info_12389875345); } return; } final SNode Concept_typevar_1226671834537 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = query; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902e4(jetbrains.mps.lang.generator.typesystem)", "2562694294549309787", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_w9106s_a0c0e( typeCheckingContext.getRepresentative(Concept_typevar_1226671834537), typeCheckingContext.getRepresentative(Concept_typevar_1226671834537)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902e4(jetbrains.mps.lang.generator.typesystem)", "1226671782084", false), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = null; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902e4(jetbrains.mps.lang.generator.typesystem)", "1226671862829", 0, null); typeCheckingContext.createEquation( (SNode) TypeToEquate, (SNode) _quotation_createNode_w9106s_a0d0e( typeCheckingContext.getRepresentative(Concept_typevar_1226671834537)), _info_12389875345); } }
public void applyRule( final SNode func, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { // function is expected to return value of any type final SNode expectedRetType = (SConceptOperations.isExactly( SNodeOperations.asSConcept( SNodeOperations.getConcept( ConceptFunction__BehaviorDescriptor.getExpectedReturnType_idhEwIGRD.invoke( func))), MetaAdapterFactory.getConcept( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x110dae5f4a3L, "jetbrains.mps.baseLanguage.structure.WildCardType")) ? null : ConceptFunction__BehaviorDescriptor.getExpectedReturnType_idhEwIGRD.invoke(func)); boolean noReturnExpected = ((expectedRetType == null) || TypeChecker.getInstance() .getSubtypingManager() .isSubtype(expectedRetType, _quotation_createNode_bbraw4_b0a0a0c0b())); if (!(noReturnExpected)) { final SNode LCS_typevar_1186052624152 = typeCheckingContext.createNewRuntimeTypesVariable(); Iterable<SNode> returnStatements = RulesFunctions_BaseLanguage.collectReturnStatements( SLinkOperations.getTarget( func, MetaAdapterFactory.getContainmentLink( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x108bbca0f48L, 0x108bbd29b4aL, "body"))); // should return subtypes of the 'expected type' // if 'expected type' is null - should still return some value (of any type) for (SNode returnStatement : Sequence.fromIterable(returnStatements)) { if ((SLinkOperations.getTarget( returnStatement, MetaAdapterFactory.getContainmentLink( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc67c7feL, 0xf8cc6bf96cL, "expression")) == null)) { { MessageTarget errorTarget = new NodeMessageTarget(); IErrorReporter _reporter_2309309498 = typeCheckingContext.reportTypeError( returnStatement, "should return value", "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053304501", null, errorTarget); } } else { { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget( returnStatement, MetaAdapterFactory.getContainmentLink( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc67c7feL, 0xf8cc6bf96cL, "expression")); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053304511", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) typeCheckingContext.getRepresentative(LCS_typevar_1186052624152), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053304515", true), false, true, _info_12389875345); } if ((expectedRetType != null)) { if (!(typeCheckingContext.isSingleTypeComputation())) { { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget( returnStatement, MetaAdapterFactory.getContainmentLink( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc67c7feL, 0xf8cc6bf96cL, "expression")); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "7630810368327770735", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "7410236346363166597", true), (SNode) expectedRetType, true, true, _info_12389875345); } } } } } // last expression statement can serve as return statement SNode lastStatement = IMethodLike__BehaviorDescriptor.getLastStatement_idi2fhS7A.invoke(func); if (SNodeOperations.isInstanceOf( lastStatement, MetaAdapterFactory.getConcept( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b213L, "jetbrains.mps.baseLanguage.structure.ExpressionStatement"))) { final SNode expression = SLinkOperations.getTarget( SNodeOperations.cast( lastStatement, MetaAdapterFactory.getConcept( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b213L, "jetbrains.mps.baseLanguage.structure.ExpressionStatement")), MetaAdapterFactory.getContainmentLink( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8cc56b213L, 0xf8cc56b214L, "expression")); { SNode _nodeToCheck_1029348928467 = expression; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053063874", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) typeCheckingContext.getRepresentative(LCS_typevar_1186052624152), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053084979", true), false, true, _info_12389875345); } if ((expectedRetType != null)) { if (!(typeCheckingContext.isSingleTypeComputation())) { { SNode _nodeToCheck_1029348928467 = expression; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "7630810368327770756", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "7410236346363168757", true), (SNode) expectedRetType, true, true, _info_12389875345); } } } } { SNode _nodeToCheck_1029348928467 = func; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053174208", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053169643", true), (SNode) typeCheckingContext.getRepresentative(LCS_typevar_1186052624152), _info_12389875345); } if ((expectedRetType != null)) { if (!(typeCheckingContext.isSingleTypeComputation())) { { SNode _nodeToCheck_1029348928467 = func; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053540847", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "7410236346363168929", true), (SNode) expectedRetType, true, true, _info_12389875345); } } } } }
public void applyRule( final SNode func, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { SNode expectedRetType = BehaviorReflection.invokeVirtual( (Class<SNode>) ((Class) Object.class), func, "virtual_getExpectedReturnType_1213877374441", new Object[] {}); boolean noReturnExpected = ((expectedRetType == null) || TypeChecker.getInstance() .getSubtypingManager() .isSubtype(expectedRetType, _quotation_createNode_bbraw4_b0a0a0b0b())); if (SConceptOperations.isExactly( SNodeOperations.getConceptDeclaration(expectedRetType), "jetbrains.mps.baseLanguage.structure.WildCardType")) { // function is expected to return value of any type expectedRetType = null; } if (!(noReturnExpected)) { final SNode LCS_typevar_1186052624152 = typeCheckingContext.createNewRuntimeTypesVariable(); Iterable<SNode> returnStatements = RulesFunctions_BaseLanguage.collectReturnStatements( SLinkOperations.getTarget(func, "body", true)); // should return subtypes of the 'expected type' // if 'expected type' is null - should still return some value (of any type) for (SNode returnStatement : Sequence.fromIterable(returnStatements)) { if ((SLinkOperations.getTarget(returnStatement, "expression", true) == null)) { { MessageTarget errorTarget = new NodeMessageTarget(); IErrorReporter _reporter_2309309498 = typeCheckingContext.reportTypeError( returnStatement, "should return value", "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053304501", null, errorTarget); } } else { { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(returnStatement, "expression", true); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053304511", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) typeCheckingContext.getRepresentative(LCS_typevar_1186052624152), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053304515", true), false, true, _info_12389875345); } if ((expectedRetType != null)) { if (!(typeCheckingContext.isSingleTypeComputation())) { { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(returnStatement, "expression", true); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "7630810368327770735", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "7630810368327770718", true), (SNode) expectedRetType, true, true, _info_12389875345); } } } } } // last expression statement can serve as return statement SNode lastStatement = BehaviorReflection.invokeVirtual( (Class<SNode>) ((Class) Object.class), func, "virtual_getLastStatement_1239354409446", new Object[] {}); if (SNodeOperations.isInstanceOf( lastStatement, "jetbrains.mps.baseLanguage.structure.ExpressionStatement")) { SNode expression = SLinkOperations.getTarget( SNodeOperations.cast( lastStatement, "jetbrains.mps.baseLanguage.structure.ExpressionStatement"), "expression", true); { SNode _nodeToCheck_1029348928467 = expression; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053063874", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) typeCheckingContext.getRepresentative(LCS_typevar_1186052624152), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053084979", true), false, true, _info_12389875345); } if ((expectedRetType != null)) { if (!(typeCheckingContext.isSingleTypeComputation())) { { SNode _nodeToCheck_1029348928467 = expression; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "7630810368327770756", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "7630810368327770753", true), (SNode) expectedRetType, true, true, _info_12389875345); } } } } { SNode _nodeToCheck_1029348928467 = func; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053174208", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053169643", true), (SNode) typeCheckingContext.getRepresentative(LCS_typevar_1186052624152), _info_12389875345); } if ((expectedRetType != null)) { { SNode _nodeToCheck_1029348928467 = func; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053540847", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c895902c5(jetbrains.mps.baseLanguage.typesystem)", "1186053540851", true), (SNode) expectedRetType, false, true, _info_12389875345); } } } }
public void applyRule( final SNode invoke, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final List<SNode> ptypes = ListSequence.fromList(new ArrayList<SNode>()); for (SNode p : SLinkOperations.getTargets(invoke, "parameter", true)) { final SNode T_typevar_642108346586029317 = typeCheckingContext.createNewRuntimeTypesVariable(); ListSequence.fromList(ptypes) .addElement(typeCheckingContext.getRepresentative(T_typevar_642108346586029317)); { SNode _nodeToCheck_1029348928467 = p; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c89590337(jetbrains.mps.baseLanguage.closures.typesystem)", "2608385503904033309", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c89590337(jetbrains.mps.baseLanguage.closures.typesystem)", "2608385503904033311", true), (SNode) typeCheckingContext.getRepresentative(T_typevar_642108346586029317), _info_12389875345); } } final SNode ret_typevar_642108346586029335 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = invoke; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c89590337(jetbrains.mps.baseLanguage.closures.typesystem)", "642108346586029336", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c89590337(jetbrains.mps.baseLanguage.closures.typesystem)", "642108346586029340", true), (SNode) typeCheckingContext.getRepresentative(ret_typevar_642108346586029335), _info_12389875345); } final SNode ftype_typevar_642108346586029342 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget(invoke, "function", true); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c89590337(jetbrains.mps.baseLanguage.closures.typesystem)", "642108346586029343", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.getRepresentative(ftype_typevar_642108346586029342), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c89590337(jetbrains.mps.baseLanguage.closures.typesystem)", "642108346586029345", true), _info_12389875345); } { final SNode _representatorVar_juleau_g0a = typeCheckingContext.getRepresentative(ftype_typevar_642108346586029342); typeCheckingContext.whenConcrete( _representatorVar_juleau_g0a, new Runnable() { public void run() { try { { SNode _nodeToCheck_1029348928467 = invoke; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c89590337(jetbrains.mps.baseLanguage.closures.typesystem)", "2608385503904033275", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) typeCheckingContext.getRepresentative(ret_typevar_642108346586029335), (SNode) FunctionTypeUtil.getResultType( typeCheckingContext.getRepresentative( ftype_typevar_642108346586029342)), false, true, _info_12389875345); } { SNode pt; SNode fpt; Iterator<SNode> pt_iterator = ListSequence.fromList(ptypes).iterator(); Iterator<SNode> fpt_iterator = ListSequence.fromList( FunctionTypeUtil.getParameterTypes( typeCheckingContext.getRepresentative( ftype_typevar_642108346586029342))) .iterator(); while (true) { if (!(pt_iterator.hasNext())) { break; } if (!(fpt_iterator.hasNext())) { break; } pt = pt_iterator.next(); fpt = fpt_iterator.next(); { SNode _nodeToCheck_1029348928467 = pt; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c89590337(jetbrains.mps.baseLanguage.closures.typesystem)", "2608385503904033282", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c89590337(jetbrains.mps.baseLanguage.closures.typesystem)", "2608385503904033284", true), (SNode) fpt, false, true, _info_12389875345); } } } } catch (RuntimeException ex) { if (!(false)) { MessageTarget errorTarget = new NodeMessageTarget(); IErrorReporter _reporter_2309309498 = typeCheckingContext.reportTypeError( invoke, ex.getMessage(), "r:00000000-0000-4000-0000-011c89590337(jetbrains.mps.baseLanguage.closures.typesystem)", "8679288141369466397", null, errorTarget); } } } }, "r:00000000-0000-4000-0000-011c89590337(jetbrains.mps.baseLanguage.closures.typesystem)", "642108346586029351", false, false); } }
public void applyRule( final SNode operation, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode KEY_typevar_1240854441569 = typeCheckingContext.createNewRuntimeTypesVariable(); final SNode VALUE_typevar_1240854445546 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = IOperation_BehaviorDescriptor.getOperand_idhEwIP$m.invoke(operation); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "7668447476859120488", 0, null); typeCheckingContext.createGreaterThanInequality( (SNode) _quotation_createNode_9rcmzr_a0c0b( typeCheckingContext.getRepresentative(KEY_typevar_1240854441569), typeCheckingContext.getRepresentative(VALUE_typevar_1240854445546)), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1240854449114", true), false, true, _info_12389875345); } final SNode MAPPING_typevar_1240854519783 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = operation; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1240854488447", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.getRepresentative(MAPPING_typevar_1240854519783), (SNode) _quotation_createNode_9rcmzr_a0e0b( typeCheckingContext.getRepresentative(KEY_typevar_1240854441569), typeCheckingContext.getRepresentative(VALUE_typevar_1240854445546)), _info_12389875345); } { SNode _nodeToCheck_1029348928467 = operation; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1240854537317", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c8959032b(jetbrains.mps.baseLanguage.collections.typesystem)", "1240854533220", true), (SNode) _quotation_createNode_9rcmzr_a0f0b( typeCheckingContext.getRepresentative(MAPPING_typevar_1240854519783)), _info_12389875345); } }
public void applyRule( final SNode tab, final TypeCheckingContext typeCheckingContext, IsApplicableStatus status) { final SNode componentType_typevar_6938053545825381660 = typeCheckingContext.createNewRuntimeTypesVariable(); { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget( tab, MetaAdapterFactory.getContainmentLink( 0x28f9e4973b424291L, 0xaeba0a1039153ab1L, 0x6048eaf0c78f324eL, 0x6048eaf0c78fad10L, "componentExpression")); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c89590364(jetbrains.mps.lang.plugin.typesystem)", "6938053545825381661", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.getRepresentative(componentType_typevar_6938053545825381660), (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c89590364(jetbrains.mps.lang.plugin.typesystem)", "6938053545825381665", true), _info_12389875345); } { SNode _nodeToCheck_1029348928467 = tab; EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c89590364(jetbrains.mps.lang.plugin.typesystem)", "6938053545825381669", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.getRepresentative(componentType_typevar_6938053545825381660), (SNode) _quotation_createNode_6sqcaa_a0c0b(), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget( tab, MetaAdapterFactory.getContainmentLink( 0x28f9e4973b424291L, 0xaeba0a1039153ab1L, 0x6048eaf0c78f324eL, 0x6048eaf0c78fad11L, "titleExpression")); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c89590364(jetbrains.mps.lang.plugin.typesystem)", "6938053545825381676", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c89590364(jetbrains.mps.lang.plugin.typesystem)", "6938053545825381682", true), (SNode) _quotation_createNode_6sqcaa_a0d0b(), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget( tab, MetaAdapterFactory.getContainmentLink( 0x28f9e4973b424291L, 0xaeba0a1039153ab1L, 0x6048eaf0c78f324eL, 0x6048eaf0c78fad12L, "iconExpression")); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c89590364(jetbrains.mps.lang.plugin.typesystem)", "6938053545825381686", 0, null); typeCheckingContext.createLessThanInequality( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c89590364(jetbrains.mps.lang.plugin.typesystem)", "6938053545825381692", true), (SNode) _quotation_createNode_6sqcaa_a0e0b(), false, true, _info_12389875345); } { SNode _nodeToCheck_1029348928467 = SLinkOperations.getTarget( tab, MetaAdapterFactory.getContainmentLink( 0x28f9e4973b424291L, 0xaeba0a1039153ab1L, 0x6048eaf0c78f324eL, 0x6048eaf0c78fad13L, "disposeTabClosure")); EquationInfo _info_12389875345 = new EquationInfo( _nodeToCheck_1029348928467, null, "r:00000000-0000-4000-0000-011c89590364(jetbrains.mps.lang.plugin.typesystem)", "6938053545825381696", 0, null); typeCheckingContext.createEquation( (SNode) typeCheckingContext.typeOf( _nodeToCheck_1029348928467, "r:00000000-0000-4000-0000-011c89590364(jetbrains.mps.lang.plugin.typesystem)", "6938053545825381705", true), (SNode) _quotation_createNode_6sqcaa_a0f0b( typeCheckingContext.getRepresentative(componentType_typevar_6938053545825381660)), _info_12389875345); } }