boolean (Object o) { if (this == o) return true; if (o == null || !getClass().equals(o.getClass())) return false; final UsageInfo usageInfo = (UsageInfo)o; if (isNonCodeUsage != usageInfo.isNonCodeUsage) return false; SmartPointerManager smartPointerManager = SmartPointerManager.getInstance(getProject()); return smartPointerManager.pointToTheSameElement(mySmartPointer, usageInfo.mySmartPointer) && (myPsiFileRange == null || usageInfo.myPsiFileRange != null && smartPointerManager.pointToTheSameElement(myPsiFileRange, usageInfo.myPsiFileRange)); }