mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[groovy] GrTraitType: add code comments & swap some code back.
This commit is contained in:
+8
-4
@@ -166,16 +166,17 @@ public class GrReferenceResolveRunner {
|
||||
? ((PsiDisjunctionType)originalQualifierType).getLeastUpperBound()
|
||||
: originalQualifierType;
|
||||
|
||||
if (qualifierType instanceof GrTraitType) {
|
||||
return processTraitType((GrTraitType)qualifierType, state);
|
||||
}
|
||||
else if (qualifierType instanceof PsiIntersectionType) {
|
||||
if (qualifierType instanceof PsiIntersectionType) {
|
||||
for (PsiType conjunct : ((PsiIntersectionType)qualifierType).getConjuncts()) {
|
||||
if (!processQualifierType(conjunct, state)) return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
if (qualifierType instanceof GrTraitType) {
|
||||
return processTraitType((GrTraitType)qualifierType, state);
|
||||
}
|
||||
|
||||
if (qualifierType instanceof PsiClassType) {
|
||||
PsiClassType.ClassResolveResult qualifierResult = ((PsiClassType)qualifierType).resolveGenerics();
|
||||
PsiClass qualifierClass = qualifierResult.getElement();
|
||||
@@ -204,6 +205,9 @@ public class GrReferenceResolveRunner {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Process trait type conjuncts in reversed order because last applied trait matters.
|
||||
*/
|
||||
private boolean processTraitType(@NotNull GrTraitType traitType, @NotNull ResolveState state) {
|
||||
final PsiType[] conjuncts = traitType.getConjuncts();
|
||||
for (int i = conjuncts.length - 1; i >= 0; i--) {
|
||||
|
||||
+7
-6
@@ -300,17 +300,18 @@ public class CompleteReferenceExpression {
|
||||
}
|
||||
getVariantsFromQualifierType(TypesUtil.getJavaLangObject(qualifier), project);
|
||||
}
|
||||
else if (qualifierType instanceof GrTraitType) {
|
||||
PsiType[] conjuncts = ((GrTraitType)qualifierType).getConjuncts();
|
||||
for (int i = conjuncts.length - 1; i >= 0; i--) {
|
||||
getVariantsFromQualifierType(conjuncts[i], project);
|
||||
}
|
||||
}
|
||||
else if (qualifierType instanceof PsiIntersectionType) {
|
||||
for (PsiType conjunct : ((PsiIntersectionType)qualifierType).getConjuncts()) {
|
||||
getVariantsFromQualifierType(conjunct, project);
|
||||
}
|
||||
}
|
||||
else if (qualifierType instanceof GrTraitType) {
|
||||
// Process trait type conjuncts in reversed order because last applied trait matters.
|
||||
PsiType[] conjuncts = ((GrTraitType)qualifierType).getConjuncts();
|
||||
for (int i = conjuncts.length - 1; i >= 0; i--) {
|
||||
getVariantsFromQualifierType(conjuncts[i], project);
|
||||
}
|
||||
}
|
||||
else {
|
||||
getVariantsFromQualifierType(qualifierType, project);
|
||||
if (qualifier instanceof GrReferenceExpression && !PsiUtil.isSuperReference(qualifier) && !PsiUtil.isInstanceThisRef(qualifier)) {
|
||||
|
||||
Reference in New Issue
Block a user