}
if ((argTypes.length == 2) && !argTypes[1].getSignature().equals(Type.getReturnType(methodSig).getSignature())) {
return;
}
InnerClassAccess access = null;
try {
String dottedClassConstantOperand = getDottedClassConstantOperand();
access = AnalysisContext.currentAnalysisContext().getInnerClassAccessMap().getInnerClassAccess(dottedClassConstantOperand, methodName);
if(access != null) {
// if the enclosing class of the field differs from the enclosing class of the method, we shouln't report
// because there is nothing wrong: see bug 1226
if (!access.getField().getClassName().equals(dottedClassConstantOperand)) {
return;
}
// the access method is created to access the synthetic reference to the enclosing class, we shouln't report
// user can't do anything here, see bug 1191
if(access.getField().isSynthetic()){
return;
}
}
} catch (ClassNotFoundException e) {
}
BugInstance bug = new BugInstance(this, "IMA_INEFFICIENT_MEMBER_ACCESS", LOW_PRIORITY).addClassAndMethod(this)
.addSourceLine(this);
if(access != null) {
bug.addField(access.getField());
}
bugReporter.reportBug(bug);
}
}