@Override protected void doFind( SNode node, SearchScope scope, List<SNode> _results, ProgressMonitor monitor) { monitor.start(getDescription(), 1); try { for (SNode classNode : ListSequence.fromList( FindUtils.executeFinder( "jetbrains.mps.baseLanguage.findUsages.DerivedClasses_Finder", SNodeOperations.getParent(node), scope, monitor.subTask(1)))) { Iterable<SNode> fieldsOfSameKind; if (SNodeOperations.isInstanceOf( node, MetaAdapterFactory.getConcept( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c108ca68L, "jetbrains.mps.baseLanguage.structure.FieldDeclaration"))) { fieldsOfSameKind = ClassConcept_Behavior.call_fields_5292274854859383272( SNodeOperations.cast( classNode, MetaAdapterFactory.getConcept( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c108ca66L, "jetbrains.mps.baseLanguage.structure.ClassConcept"))); } else { fieldsOfSameKind = Classifier_Behavior.call_staticFields_5292274854859223538( SNodeOperations.cast( classNode, MetaAdapterFactory.getConcept( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0xf8c108ca66L, "jetbrains.mps.baseLanguage.structure.ClassConcept"))); } for (SNode field : Sequence.fromIterable(fieldsOfSameKind)) { if (SPropertyOperations.getString( field, MetaAdapterFactory.getProperty( 0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name")) .equals( SPropertyOperations.getString( node, MetaAdapterFactory.getProperty( 0xceab519525ea4f22L, 0x9b92103b95ca8c0cL, 0x110396eaaa4L, 0x110396ec041L, "name"))) && BehaviorReflection.invokeVirtual( String.class, SLinkOperations.getTarget( field, MetaAdapterFactory.getContainmentLink( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x450368d90ce15bc3L, 0x4ed4d318133c80ceL, "type")), "virtual_getErasureSignature_1213877337313", new Object[] {}) .equals( BehaviorReflection.invokeVirtual( String.class, SLinkOperations.getTarget( node, MetaAdapterFactory.getContainmentLink( 0xf3061a5392264cc5L, 0xa443f952ceaf5816L, 0x450368d90ce15bc3L, 0x4ed4d318133c80ceL, "type")), "virtual_getErasureSignature_1213877337313", new Object[] {}))) { ListSequence.fromList(_results).addElement(field); } } } } finally { monitor.done(); } }