[java] Fix language injection for java records

IDEA-321083 review refactor. Avoid class casts

GitOrigin-RevId: 00018c6f9eb076bf11ad4112cedd9452f595f737
This commit is contained in:
Georgii Ustinov
2023-10-19 14:44:02 +03:00
committed by intellij-monorepo-bot
parent 1704e37146
commit 96356837d3

View File

@@ -58,22 +58,22 @@ public final class InjectionCache {
Parameters parameters = new Parameters(annoClasses.get(cursor), usageScope, true,
PsiClass.class, PsiParameter.class, PsiMethod.class, PsiRecordComponent.class);
AnnotatedElementsSearch.searchElements(parameters).forEach(element -> {
if (element instanceof PsiParameter) {
final PsiElement scope = ((PsiParameter)element).getDeclarationScope();
if (scope instanceof PsiMethod) {
ContainerUtil.addIfNotNull(result, ((PsiMethod)scope).getName());
if (element instanceof PsiParameter psiParameter) {
final PsiElement scope = psiParameter.getDeclarationScope();
if (scope instanceof PsiMethod psiMethod) {
ContainerUtil.addIfNotNull(result, psiMethod.getName());
}
}
else if (element instanceof PsiClass && ((PsiClass)element).isAnnotationType() && !annoClasses.contains(element)) {
annoClasses.add((PsiClass)element);
else if (element instanceof PsiClass psiClass && psiClass.isAnnotationType() && !annoClasses.contains(psiClass)) {
annoClasses.add(psiClass);
}
else if (element instanceof PsiMethod) {
ContainerUtil.addIfNotNull(result, ((PsiMember)element).getName());
else if (element instanceof PsiMethod psiMethod) {
ContainerUtil.addIfNotNull(result, psiMethod.getName());
}
else if (element instanceof PsiRecordComponent) {
final PsiClass record = ((PsiRecordComponent)element).getContainingClass();
if (record != null) {
ContainerUtil.addIfNotNull(result, record.getName());
else if (element instanceof PsiRecordComponent psiRecordComponent) {
final PsiClass psiClass = psiRecordComponent.getContainingClass();
if (psiClass != null) {
ContainerUtil.addIfNotNull(result, psiClass.getName());
}
}
return true;