コード例 #1
0
ファイル: QueriesGenerated.java プロジェクト: java66liu/MPS
 public static boolean baseMappingRule_Condition_1201386765715(
     final IOperationContext operationContext, final BaseMappingRuleContext _context) {
   return SConceptOperations.isExactly(
       SNodeOperations.getConceptDeclaration(
           SLinkOperations.getTarget(_context.getNode(), "operation", true)),
       "jetbrains.mps.baseLanguage.structure.PropertyReference");
 }
コード例 #2
0
ファイル: QueriesGenerated.java プロジェクト: java66liu/MPS
  public static Object propertyMacro_GetPropertyValue_7923290658387314322(
      final IOperationContext operationContext, final PropertyMacroContext _context) {
    SNode extendsNode =
        SLinkOperations.getTarget(
            SNodeOperations.cast(
                SLinkOperations.getTarget(_context.getNode(), "concept", false),
                "jetbrains.mps.lang.structure.structure.ConceptDeclaration"),
            "extends",
            false);

    if (SConceptOperations.isExactly(
        SLinkOperations.getTarget(_context.getNode(), "concept", false),
        "jetbrains.mps.lang.core.structure.BaseConcept")) {
      return "jetbrains.mps.smodel.runtime.impl.CompiledBehaviorDescriptor";
    }
    if ((extendsNode == null)) {
      extendsNode =
          SNodeOperations.getNode(
              "r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)",
              "1133920641626");
    }

    String behaviorModel =
        jetbrains.mps.util.SNodeOperations.getModelLongName(SNodeOperations.getModel(extendsNode));
    behaviorModel =
        behaviorModel.substring(0, behaviorModel.length() - "structure".length()) + "behavior";
    return behaviorModel
        + "."
        + SPropertyOperations.getString(extendsNode, "name")
        + "_BehaviorDescriptor";
  }
コード例 #3
0
 public Collection<ConceptEditor> getDeclaredEditors(SAbstractConcept concept) {
   {
     SAbstractConcept cncpt = ((SAbstractConcept) concept);
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0x58f98fef90ad4b72L,
             0xa390fad66ec7005aL,
             0x36fb0dc9fd3a3ad9L,
             "jetbrains.mps.core.properties.structure.PropertiesComment"))) {
       return Collections.<ConceptEditor>singletonList(new PropertiesComment_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0x58f98fef90ad4b72L,
             0xa390fad66ec7005aL,
             0x36fb0dc9fd3a3ac1L,
             "jetbrains.mps.core.properties.structure.PropertiesDeclaration"))) {
       return Collections.<ConceptEditor>singletonList(new PropertiesDeclaration_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0x58f98fef90ad4b72L,
             0xa390fad66ec7005aL,
             0x36fb0dc9fd3a2754L,
             "jetbrains.mps.core.properties.structure.PropertiesFile"))) {
       return Collections.<ConceptEditor>singletonList(new PropertiesFile_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0x58f98fef90ad4b72L,
             0xa390fad66ec7005aL,
             0x36fb0dc9fd3a3ac2L,
             "jetbrains.mps.core.properties.structure.PropertiesLine"))) {
       return Collections.<ConceptEditor>singletonList(new PropertiesLine_Editor());
     }
   }
   return Collections.<ConceptEditor>emptyList();
 }
コード例 #4
0
 public static Scope virtual_getScope_3734116213129936182(
     SNode thisNode, SNode kind, SNode child) {
   if (SConceptOperations.isExactly(
       kind, "jetbrains.mps.baseLanguage.structure.VariableDeclaration")) {
     return new EmptyScope();
   }
   return BehaviorReflection.invokeSuper(
       Scope.class,
       thisNode,
       "jetbrains.mps.lang.core.structure.ScopeProvider",
       "virtual_getScope_3734116213129936182",
       new Object[] {kind, child});
 }
コード例 #5
0
 public Collection<ConceptEditor> getDeclaredEditors(SAbstractConcept concept) {
   {
     SAbstractConcept cncpt = ((SAbstractConcept) concept);
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0x1839bec5cea641dfL,
             0xb9e0c405ff35c41eL,
             0x20c051df23a9488cL,
             "jetbrains.mps.lang.editor.imageGen.structure.ImageGenerator"))) {
       return Collections.<ConceptEditor>singletonList(new ImageGenerator_Editor());
     }
   }
   return Collections.<ConceptEditor>emptyList();
 }
コード例 #6
0
 public Collection<ConceptEditor> getDeclaredEditors(SAbstractConcept concept) {
   {
     SAbstractConcept cncpt = ((SAbstractConcept) concept);
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0x37e03aa1728949bcL,
             0x826930de5eceec76L,
             0x657f08af7deb331aL,
             "jetbrains.mps.vcs.mergehints.structure.MergeHint"))) {
       return Collections.<ConceptEditor>singletonList(new MergeHint_Editor());
     }
   }
   return Collections.<ConceptEditor>emptyList();
 }
コード例 #7
0
 public boolean isApplicableToNode(final SNode node, final EditorContext editorContext) {
   final EditorCell editorCell = editorContext.getSelectedCell();
   if (editorCell == null) {
     return false;
   }
   if (editorCell.getLinkDeclaration()
       != SLinkOperations.findLinkDeclaration(
           "jetbrains.mps.lang.generator.structure.Weaving_MappingRule", "ruleConsequence")) {
     return false;
   }
   return SLinkOperations.getTarget(node, "ruleConsequence", true) == null
       || SConceptOperations.isExactly(
           SNodeOperations.getConceptDeclaration(
               SLinkOperations.getTarget(node, "ruleConsequence", true)),
           "jetbrains.mps.lang.generator.structure.RuleConsequence");
 }
コード例 #8
0
 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);
       }
     }
   }
 }
コード例 #9
0
 public Collection<ConceptEditor> getDeclaredEditors(SAbstractConcept concept) {
   {
     SAbstractConcept cncpt = ((SAbstractConcept) concept);
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x108050a5816L,
             "jetbrains.mps.samples.formulaLanguage.structure.AndOperation"))) {
       return Collections.<ConceptEditor>singletonList(new AndOperation_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102db857767L,
             "jetbrains.mps.samples.formulaLanguage.structure.Constant"))) {
       return Collections.<ConceptEditor>singletonList(new Constant_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x10809c54870L,
             "jetbrains.mps.samples.formulaLanguage.structure.EqualsOperation"))) {
       return Collections.<ConceptEditor>singletonList(new EqualsOperation_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102db824fa1L,
             "jetbrains.mps.samples.formulaLanguage.structure.Expression"))) {
       return Collections.<ConceptEditor>singletonList(new Expression_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102db8bab3cL,
             "jetbrains.mps.samples.formulaLanguage.structure.FloatingPointConstant"))) {
       return Collections.<ConceptEditor>singletonList(new FloatingPointConstant_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102db80c054L,
             "jetbrains.mps.samples.formulaLanguage.structure.Formula"))) {
       return Collections.<ConceptEditor>singletonList(new Formula_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102db8296fcL,
             "jetbrains.mps.samples.formulaLanguage.structure.Function"))) {
       return Collections.<ConceptEditor>singletonList(new Function_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x103009e5ee0L,
             "jetbrains.mps.samples.formulaLanguage.structure.GreaterThanOperation"))) {
       return Collections.<ConceptEditor>singletonList(new GreaterThanOperation_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102db8d4298L,
             "jetbrains.mps.samples.formulaLanguage.structure.IfFunction"))) {
       return Collections.<ConceptEditor>singletonList(new IfFunction_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102db8aa3f9L,
             "jetbrains.mps.samples.formulaLanguage.structure.IntegerConstant"))) {
       return Collections.<ConceptEditor>singletonList(new IntegerConstant_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x10a037c6c0bL,
             "jetbrains.mps.samples.formulaLanguage.structure.IsNullOperation"))) {
       return Collections.<ConceptEditor>singletonList(new IsNullOperation_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102ea976b99L,
             "jetbrains.mps.samples.formulaLanguage.structure.LessThanOperation"))) {
       return Collections.<ConceptEditor>singletonList(new LessThanOperation_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102dba2244aL,
             "jetbrains.mps.samples.formulaLanguage.structure.MinusOperation"))) {
       return Collections.<ConceptEditor>singletonList(new MinusOperation_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102ff4441ddL,
             "jetbrains.mps.samples.formulaLanguage.structure.MultOperation"))) {
       return Collections.<ConceptEditor>singletonList(new MultOperation_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x10a04135987L,
             "jetbrains.mps.samples.formulaLanguage.structure.NotOperation"))) {
       return Collections.<ConceptEditor>singletonList(new NotOperation_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x10a036c79c0L,
             "jetbrains.mps.samples.formulaLanguage.structure.NullConstant"))) {
       return Collections.<ConceptEditor>singletonList(new NullConstant_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102db8620dbL,
             "jetbrains.mps.samples.formulaLanguage.structure.Operation"))) {
       return Collections.<ConceptEditor>singletonList(new Operation_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x108050ab746L,
             "jetbrains.mps.samples.formulaLanguage.structure.OrOperation"))) {
       return Collections.<ConceptEditor>singletonList(new OrOperation_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x10809d032baL,
             "jetbrains.mps.samples.formulaLanguage.structure.ParenthisizedExpression"))) {
       return Collections.<ConceptEditor>singletonList(new ParenthisizedExpression_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102dba0a69dL,
             "jetbrains.mps.samples.formulaLanguage.structure.PlusOperation"))) {
       return Collections.<ConceptEditor>singletonList(new PlusOperation_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x102db83846eL,
             "jetbrains.mps.samples.formulaLanguage.structure.Reference"))) {
       return Collections.<ConceptEditor>singletonList(new Reference_Editor());
     }
     if (SConceptOperations.isExactly(
         SNodeOperations.asSConcept(cncpt),
         MetaAdapterFactory.getConcept(
             0xb1a9bc478a264792L,
             0x8b684660c531090aL,
             0x10804f6f702L,
             "jetbrains.mps.samples.formulaLanguage.structure.StringConstant"))) {
       return Collections.<ConceptEditor>singletonList(new StringConstant_Editor());
     }
   }
   return Collections.<ConceptEditor>emptyList();
 }
コード例 #10
0
 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);
         }
       }
     }
   }
 }
コード例 #11
0
 public void applyRule(
     final SNode conceptDeclaration,
     final TypeCheckingContext typeCheckingContext,
     IsApplicableStatus status) {
   OldCommentMigraionCreator creator = new OldCommentMigraionCreator();
   if (SConceptOperations.isExactly(
           SNodeOperations.asSConcept(SNodeOperations.asSConcept(conceptDeclaration)),
           MetaAdapterFactory.getInterfaceConcept(
               0xceab519525ea4f22L,
               0x9b92103b95ca8c0cL,
               0x39384475a5756fb0L,
               "jetbrains.mps.lang.core.structure.IOldCommentContainer"))
       || SConceptOperations.isExactly(
           SNodeOperations.asSConcept(SNodeOperations.asSConcept(conceptDeclaration)),
           MetaAdapterFactory.getInterfaceConcept(
               0xceab519525ea4f22L,
               0x9b92103b95ca8c0cL,
               0x9b3ed4f3a4d01ecL,
               "jetbrains.mps.lang.core.structure.IOldCommentAnnotation"))) {
     return;
   }
   if (ListSequence.fromList(
               AbstractConceptDeclaration__BehaviorDescriptor.getImmediateSuperconcepts_idhMuxyK2
                   .invoke(conceptDeclaration))
           .contains(
               SNodeOperations.asNode(
                   MetaAdapterFactory.getInterfaceConcept(
                       0xceab519525ea4f22L,
                       0x9b92103b95ca8c0cL,
                       0x39384475a5756fb0L,
                       "jetbrains.mps.lang.core.structure.IOldCommentContainer")))
       && creator.canCreateMigration(conceptDeclaration)) {
     {
       MessageTarget errorTarget = new NodeMessageTarget();
       errorTarget = new PropertyMessageTarget("name");
       IErrorReporter _reporter_2309309498 =
           typeCheckingContext.reportWarning(
               conceptDeclaration,
               "Old comment container should be migrated",
               "r:cec599e3-51d2-48a7-af31-989e3cbd593c(jetbrains.mps.lang.core.typesystem)",
               "699163291709407479",
               null,
               errorTarget);
       {
         BaseQuickFixProvider intentionProvider =
             new BaseQuickFixProvider(
                 "jetbrains.mps.lang.core.typesystem.CreateIntentionForOldCommentContainer_QuickFix",
                 false);
         _reporter_2309309498.addIntentionProvider(intentionProvider);
       }
     }
   }
   if (ListSequence.fromList(
               AbstractConceptDeclaration__BehaviorDescriptor.getImmediateSuperconcepts_idhMuxyK2
                   .invoke(conceptDeclaration))
           .contains(
               SNodeOperations.asNode(
                   MetaAdapterFactory.getInterfaceConcept(
                       0xceab519525ea4f22L,
                       0x9b92103b95ca8c0cL,
                       0x9b3ed4f3a4d01ecL,
                       "jetbrains.mps.lang.core.structure.IOldCommentAnnotation")))
       && creator.canCreateMigration(conceptDeclaration)) {
     {
       MessageTarget errorTarget = new NodeMessageTarget();
       errorTarget = new PropertyMessageTarget("name");
       IErrorReporter _reporter_2309309498 =
           typeCheckingContext.reportWarning(
               conceptDeclaration,
               "Old comment annotation should be migrated",
               "r:cec599e3-51d2-48a7-af31-989e3cbd593c(jetbrains.mps.lang.core.typesystem)",
               "699163291709408708",
               null,
               errorTarget);
       {
         BaseQuickFixProvider intentionProvider =
             new BaseQuickFixProvider(
                 "jetbrains.mps.lang.core.typesystem.CreateIntentionForOldCommentAnnotation_QuickFix",
                 false);
         _reporter_2309309498.addIntentionProvider(intentionProvider);
       }
     }
   }
 }