public static SNode virtual_getExpectedReturnType_1213877374441(SNode thisNode) { SNode referenceMacro = SNodeOperations.getAncestor( thisNode, "jetbrains.mps.lang.generator.structure.ReferenceMacro", false, false); SNode attributedNode = SNodeOperations.getParent(referenceMacro); String linkRole = AttributeOperations.getLinkRole(referenceMacro); ConceptAndSuperConceptsScope linkSearchScope = new ConceptAndSuperConceptsScope(SNodeOperations.getConceptDeclaration(attributedNode)); SNode link = SNodeOperations.cast( linkSearchScope.getMostSpecificLinkDeclarationByRole(linkRole), "jetbrains.mps.lang.structure.structure.LinkDeclaration"); SNode targetConcept = SLinkOperations.getTarget(link, "target", false); SNode expectedNodeType = _quotation_createNode_mxwyp3_a0g0a(targetConcept); // reference may be resolved dynamically? if (SConceptOperations.isSubConceptOf( targetConcept, "jetbrains.mps.lang.core.structure.IResolveInfo")) { return _quotation_createNode_mxwyp3_a0a8a0(targetConcept); } return expectedNodeType; }