private static void findSuperMethods(@CheckForNull ClassDescriptor c, XMethod m, Set<XMethod> accumulator) { if (c == null) { return; } try { XClass xc = getXClass(c); XMethod xm = xc.findMatchingMethod(m.getMethodDescriptor()); if (xm != null && !accumulator.add(xm)) { return; } findSuperMethods(xc.getSuperclassDescriptor(), m, accumulator); for (ClassDescriptor i : xc.getInterfaceDescriptorList()) { findSuperMethods(i, m, accumulator); } if (!accumulator.add(m)) { return; } } catch (CheckedAnalysisException e) { AnalysisContext.logError("Error finding super methods for " + m, e); } }
public static @CheckForNull XMethod findFirstSuperMethod(XMethod m) { try { @CheckForNull ClassDescriptor c = m.getClassDescriptor(); XClass xc = getXClass(c); c = xc.getSuperclassDescriptor(); while (c != null) { xc = getXClass(c); XMethod xm = xc.findMatchingMethod(m.getMethodDescriptor()); if (xm != null) { return xm; } c = xc.getSuperclassDescriptor(); } } catch (CheckedAnalysisException e) { AnalysisContext.logError("Error finding super methods for " + m, e); } return null; }
try { XClass xClass = subtype.getXClass(); XMethod subMethod = xClass.findMatchingMethod(xMethod.getMethodDescriptor()); if (subMethod != null) { if(!subMethod.isAbstract() ) {
@Override public void sawOpcode(int seen) { if (seen == Const.INVOKESPECIAL) { XMethod m = getXMethodOperand(); if (m == null) { return; } XClass c = getXClass(); int nameDistance = EditDistance.editDistance(m.getName(), getMethodName()); if (nameDistance < 4 && c.findMatchingMethod(m.getMethodDescriptor()) == null && !m.isFinal()) { potentialSuperCall = m; } } }
try { XClass xClass = Global.getAnalysisCache().getClassAnalysis(XClass.class, subtype); XMethod matchingMethod = xClass.findMatchingMethod(getMethodDescriptor()); if (matchingMethod != null) { sawImplementation = true;
.getClassAnalysis(XClass.class, DescriptorFactory.createClassDescriptorFromSignature(type.getSignature())) .findMatchingMethod(m); } catch (CheckedAnalysisException e) {
private static void findSuperMethods(@CheckForNull ClassDescriptor c, XMethod m, Set<XMethod> accumulator) { if (c == null) { return; } try { XClass xc = getXClass(c); XMethod xm = xc.findMatchingMethod(m.getMethodDescriptor()); if (xm != null && !accumulator.add(xm)) { return; } findSuperMethods(xc.getSuperclassDescriptor(), m, accumulator); for (ClassDescriptor i : xc.getInterfaceDescriptorList()) { findSuperMethods(i, m, accumulator); } if (!accumulator.add(m)) { return; } } catch (CheckedAnalysisException e) { AnalysisContext.logError("Error finding super methods for " + m, e); } }
public static @CheckForNull XMethod findFirstSuperMethod(XMethod m) { try { @CheckForNull ClassDescriptor c = m.getClassDescriptor(); XClass xc = getXClass(c); c = xc.getSuperclassDescriptor(); while (c != null) { xc = getXClass(c); XMethod xm = xc.findMatchingMethod(m.getMethodDescriptor()); if (xm != null) { return xm; } c = xc.getSuperclassDescriptor(); } } catch (CheckedAnalysisException e) { AnalysisContext.logError("Error finding super methods for " + m, e); } return null; }
try { XClass xClass = subtype.getXClass(); XMethod subMethod = xClass.findMatchingMethod(xMethod.getMethodDescriptor()); if (subMethod != null) { if(!subMethod.isAbstract() ) {
@Override public void sawOpcode(int seen) { if (seen == INVOKESPECIAL) { XMethod m = getXMethodOperand(); if (m == null) { return; } XClass c = getXClass(); int nameDistance = EditDistance.editDistance(m.getName(), getMethodName()); if (nameDistance < 4 && c.findMatchingMethod(m.getMethodDescriptor()) == null && !m.isFinal()) { potentialSuperCall = m; } } }
try { XClass xClass = Global.getAnalysisCache().getClassAnalysis(XClass.class, subtype); XMethod matchingMethod = xClass.findMatchingMethod(getMethodDescriptor()); if (matchingMethod != null) { sawImplementation = true;
.getClassAnalysis(XClass.class, DescriptorFactory.createClassDescriptorFromSignature(type.getSignature())) .findMatchingMethod(m); } catch (CheckedAnalysisException e) {