From 31a13dc688e37c3d28e1185f27325b822784b414 Mon Sep 17 00:00:00 2001 From: Alexander Udalov Date: Wed, 28 Aug 2013 20:45:58 +0400 Subject: [PATCH] JavaPackage.getClasses() shouldn't be used directly --- .../jet/lang/resolve/java/DescriptorResolverUtils.java | 3 ++- .../jet/lang/resolve/java/resolver/JavaNamespaceResolver.java | 2 +- .../jet/lang/resolve/java/scope/JavaPackageScope.java | 2 +- .../jetbrains/jet/lang/resolve/java/scope/MembersCache.java | 2 +- .../jet/lang/resolve/java/structure/JavaPackage.java | 4 ++++ 5 files changed, 9 insertions(+), 4 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/DescriptorResolverUtils.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/DescriptorResolverUtils.java index 76b8d8bd655..e3e03c15950 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/DescriptorResolverUtils.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/DescriptorResolverUtils.java @@ -131,7 +131,8 @@ public final class DescriptorResolverUtils { } @NotNull - public static Collection filterDuplicateClasses(@NotNull Collection classes) { + public static Collection getClassesInPackage(@NotNull JavaPackage javaPackage) { + Collection classes = javaPackage.getClasses(); Set addedQualifiedNames = new HashSet(classes.size()); List result = new ArrayList(classes.size()); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaNamespaceResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaNamespaceResolver.java index 8950c9af304..cf9863076d3 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaNamespaceResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaNamespaceResolver.java @@ -248,7 +248,7 @@ public final class JavaNamespaceResolver { JavaPackage javaPackage = javaClassFinder.findPackage(packageName); if (javaPackage == null) return Collections.emptyList(); - Collection classes = DescriptorResolverUtils.filterDuplicateClasses(javaPackage.getClasses()); + Collection classes = DescriptorResolverUtils.getClassesInPackage(javaPackage); List result = new ArrayList(classes.size()); for (JavaClass javaClass : classes) { if (DescriptorResolverUtils.isCompiledKotlinClass(javaClass)) { diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaPackageScope.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaPackageScope.java index 04399295d26..9e9f0f25c6b 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaPackageScope.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/JavaPackageScope.java @@ -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 (javaClass.getOriginKind() == JavaClass.OriginKind.KOTLIN_LIGHT_CLASS) continue; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/MembersCache.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/MembersCache.java index 87ebc254a5e..22e84107b97 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/MembersCache.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/scope/MembersCache.java @@ -93,7 +93,7 @@ import java.util.Map; public static MembersCache buildForPackage(@NotNull JavaPackage javaPackage) { MembersCache membersCache = new MembersCache(); - Collection classes = DescriptorResolverUtils.filterDuplicateClasses(javaPackage.getClasses()); + Collection classes = DescriptorResolverUtils.getClassesInPackage(javaPackage); membersCache.new ExtraPackageMembersProcessor(classes).process(); return membersCache; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackage.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackage.java index 26c3a9cdcb2..892e7685dfc 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackage.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/structure/JavaPackage.java @@ -22,6 +22,10 @@ import org.jetbrains.jet.lang.resolve.name.FqName; import java.util.Collection; public interface JavaPackage extends JavaElement { + /** + * NOTE: do not use this method directly + * @see org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils#getClassesInPackage(JavaPackage) + */ @NotNull Collection getClasses();