add clarifying comments around JavaResolveUtil.getContextClass
authorpeter <peter@jetbrains.com>
Wed, 4 May 2016 10:55:25 +0000 (12:55 +0200)
committerpeter <peter@jetbrains.com>
Wed, 4 May 2016 15:26:32 +0000 (17:26 +0200)
java/java-psi-impl/src/com/intellij/psi/impl/source/resolve/JavaResolveUtil.java

index fba9855a722930f1399968c40368dac647f3c52d..83ca4fc4b781aff7ab360255bd4c780a99c71530 100644 (file)
@@ -38,6 +38,7 @@ public class JavaResolveUtil {
     PsiElement prev = element;
     PsiElement scope = element.getContext();
     while (scope != null) {
     PsiElement prev = element;
     PsiElement scope = element.getContext();
     while (scope != null) {
+      // skip the class if coming from its extends/implements list: those references only rely on the outer context for resolve
       if (scope instanceof PsiClass && (prev instanceof PsiMember || prev instanceof PsiDocComment)) {
         return (PsiClass)scope;
       }
       if (scope instanceof PsiClass && (prev instanceof PsiMember || prev instanceof PsiDocComment)) {
         return (PsiClass)scope;
       }
@@ -115,6 +116,7 @@ public class JavaResolveUtil {
       if (memberClass == null) {
         return false;
       }
       if (memberClass == null) {
         return false;
       }
+      // if resolving supertype reference, skip its containing class with getContextClass
       PsiClass contextClass = member instanceof PsiClass ? getContextClass(place)
                                                          : PsiTreeUtil.getContextOfType(place, PsiClass.class, false);
       while (contextClass != null) {
       PsiClass contextClass = member instanceof PsiClass ? getContextClass(place)
                                                          : PsiTreeUtil.getContextOfType(place, PsiClass.class, false);
       while (contextClass != null) {