resolve single import vs. import from the same package

This commit is contained in:
Alexey Kudravtsev
2009-11-05 12:14:49 +03:00
parent 03a552c5f3
commit 59923bbb32
2 changed files with 10 additions and 6 deletions
@@ -92,13 +92,18 @@ public class ClassResolverProcessor extends BaseScopeProcessor implements NameHi
}
}
private static boolean isOnDemand(PsiElement fileContext, PsiClass psiClass) {
private boolean isOnDemand(PsiElement fileContext, PsiClass psiClass) {
if (fileContext instanceof PsiImportStatementBase) {
return ((PsiImportStatementBase)fileContext).isOnDemand();
}
String fqn = psiClass.getQualifiedName();
if (fqn == null) return false;
return "java.lang".equals(StringUtil.getPackageName(fqn));
String packageName = StringUtil.getPackageName(fqn);
if ("java.lang".equals(packageName)) return true;
// class from my package imported implicitly
PsiFile file = myPlace == null ? null : myPlace.getContainingFile();
return file instanceof PsiJavaFile && ((PsiJavaFile)file).getPackageName().equals(packageName);
}
public boolean execute(PsiElement element, ResolveState state) {
@@ -154,9 +159,7 @@ public class ClassResolverProcessor extends BaseScopeProcessor implements NameHi
myCandidates.add(new ClassCandidateInfo(aClass, state.get(PsiSubstitutor.KEY), !accessible, myCurrentFileContext));
myResult = null;
if (!accessible) return true;
if (!(myCurrentFileContext instanceof PsiImportStatementBase)) return false;
return true;
return myCurrentFileContext instanceof PsiImportStatementBase;
}
private boolean checkAccessibility(final PsiClass aClass) {