JavaPackage.getClasses() shouldn't be used directly

This commit is contained in:
Alexander Udalov
2013-08-28 20:45:58 +04:00
parent e62a2bbf2f
commit 31a13dc688
5 changed files with 9 additions and 4 deletions
@@ -131,7 +131,8 @@ public final class DescriptorResolverUtils {
} }
@NotNull @NotNull
public static Collection<JavaClass> filterDuplicateClasses(@NotNull Collection<JavaClass> classes) { public static Collection<JavaClass> getClassesInPackage(@NotNull JavaPackage javaPackage) {
Collection<JavaClass> classes = javaPackage.getClasses();
Set<FqName> addedQualifiedNames = new HashSet<FqName>(classes.size()); Set<FqName> addedQualifiedNames = new HashSet<FqName>(classes.size());
List<JavaClass> result = new ArrayList<JavaClass>(classes.size()); List<JavaClass> result = new ArrayList<JavaClass>(classes.size());
@@ -248,7 +248,7 @@ public final class JavaNamespaceResolver {
JavaPackage javaPackage = javaClassFinder.findPackage(packageName); JavaPackage javaPackage = javaClassFinder.findPackage(packageName);
if (javaPackage == null) return Collections.emptyList(); if (javaPackage == null) return Collections.emptyList();
Collection<JavaClass> classes = DescriptorResolverUtils.filterDuplicateClasses(javaPackage.getClasses()); Collection<JavaClass> classes = DescriptorResolverUtils.getClassesInPackage(javaPackage);
List<Name> result = new ArrayList<Name>(classes.size()); List<Name> result = new ArrayList<Name>(classes.size());
for (JavaClass javaClass : classes) { for (JavaClass javaClass : classes) {
if (DescriptorResolverUtils.isCompiledKotlinClass(javaClass)) { if (DescriptorResolverUtils.isCompiledKotlinClass(javaClass)) {
@@ -93,7 +93,7 @@ public final class JavaPackageScope extends JavaBaseScope {
} }
} }
for (JavaClass javaClass : DescriptorResolverUtils.filterDuplicateClasses(javaPackage.getClasses())) { for (JavaClass javaClass : DescriptorResolverUtils.getClassesInPackage(javaPackage)) {
if (DescriptorResolverUtils.isCompiledKotlinPackageClass(javaClass)) continue; if (DescriptorResolverUtils.isCompiledKotlinPackageClass(javaClass)) continue;
if (javaClass.getOriginKind() == JavaClass.OriginKind.KOTLIN_LIGHT_CLASS) continue; if (javaClass.getOriginKind() == JavaClass.OriginKind.KOTLIN_LIGHT_CLASS) continue;
@@ -93,7 +93,7 @@ import java.util.Map;
public static MembersCache buildForPackage(@NotNull JavaPackage javaPackage) { public static MembersCache buildForPackage(@NotNull JavaPackage javaPackage) {
MembersCache membersCache = new MembersCache(); MembersCache membersCache = new MembersCache();
Collection<JavaClass> classes = DescriptorResolverUtils.filterDuplicateClasses(javaPackage.getClasses()); Collection<JavaClass> classes = DescriptorResolverUtils.getClassesInPackage(javaPackage);
membersCache.new ExtraPackageMembersProcessor(classes).process(); membersCache.new ExtraPackageMembersProcessor(classes).process();
return membersCache; return membersCache;
@@ -22,6 +22,10 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
import java.util.Collection; import java.util.Collection;
public interface JavaPackage extends JavaElement { public interface JavaPackage extends JavaElement {
/**
* NOTE: do not use this method directly
* @see org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils#getClassesInPackage(JavaPackage)
*/
@NotNull @NotNull
Collection<JavaClass> getClasses(); Collection<JavaClass> getClasses();