@ Override public void sawOpcode ( final int seen ) { try { stack . precomputation ( this ) ; if ( seen == Const . INVOKEINTERFACE ) { processInvokeInterface ( ) ; } else if ( seen == Const . INVOKEVIRTUAL ) { processInvokeVirtual ( ) ; } else if ( ( seen == Const . ARETURN ) && ( stack . getStackDepth ( ) > 0 ) ) { OpcodeStack . Item item = stack . getStackItem ( 0 ) ; XField field = item . getXField ( ) ; if ( field != null ) { String fieldName = field . getName ( ) ; fieldsReported . remove ( fieldName ) ; if ( fieldsReported . isEmpty ( ) ) { throw new StopOpcodeParsingException ( ) ; } } } } finally { stack . sawOpcode ( this , seen ) ; } }
overrides the visitor to record all method calls on List fields . If a method is not a set based method remove it from further consideration