PsiMethod[] (final PsiMethod method, final ArrayList<UsageInfo> result, boolean isToModifyArgs, boolean isToThrowExceptions, boolean isOriginal) { GlobalSearchScope projectScope = GlobalSearchScope.projectScope(method.getProject()); PsiMethod[] overridingMethods = OverridingMethodsSearch.search(method).toArray(PsiMethod.EMPTY_ARRAY); for (PsiMethod overridingMethod : overridingMethods) { if (GroovyLanguage.INSTANCE.equals(overridingMethod.getLanguage())) { result.add(new OverriderUsageInfo(overridingMethod, method, isOriginal, isToModifyArgs, isToThrowExceptions)); } } boolean needToChangeCalls = !myChangeInfo.isGenerateDelegate() && (myChangeInfo.isNameChanged() || myChangeInfo.isParameterSetOrOrderChanged() || myChangeInfo.isExceptionSetOrOrderChanged() || myChangeInfo.isVisibilityChanged()/*for checking inaccessible*/); if (needToChangeCalls) { PsiReference[] refs = MethodReferencesSearch.search(method, projectScope, true).toArray(PsiReference.EMPTY_ARRAY); for (PsiReference ref : refs) { PsiElement element = ref.getElement(); if (!GroovyLanguage.INSTANCE.equals(element.getLanguage())) continue; //everything else should be found by java ChangeSignatureUsageProvider provider = Objects.requireNonNull(ChangeSignatureUsageProviders.findProvider(GroovyLanguage.INSTANCE)); ContainerUtil.addIfNotNull(result, provider.createUsageInfo(myChangeInfo, ref, method, isToModifyArgs, isToThrowExceptions)); } } else if (myChangeInfo.isParameterTypesChanged()) { PsiReference[] refs = MethodReferencesSearch.search(method, projectScope, true).toArray(PsiReference.EMPTY_ARRAY); for (PsiReference reference : refs) { final PsiElement element = reference.getElement(); if (element instanceof GrDocTagValueToken) { result.add(new UsageInfo(reference)); } } } // Conflicts if (method instanceof GrMethod) { detectLocalsCollisionsInMethod((GrMethod)method, result, isOriginal); } for (final PsiMethod overridingMethod : overridingMethods) { if (overridingMethod instanceof GrMethod) { detectLocalsCollisionsInMethod((GrMethod)overridingMethod, result, isOriginal); } } return overridingMethods; }