Code refactoring - no need to filter out classes with Kotlin analogs from inside classes

This commit is contained in:
Valentin Kipyatkov
2015-01-14 17:23:28 +03:00
parent 77cb279154
commit 2b215681c9
@@ -28,7 +28,6 @@ import org.jetbrains.kotlin.resolve.scopes.FilteringScope;
import org.jetbrains.kotlin.resolve.scopes.JetScope; import org.jetbrains.kotlin.resolve.scopes.JetScope;
import org.jetbrains.kotlin.resolve.scopes.WritableScope; import org.jetbrains.kotlin.resolve.scopes.WritableScope;
import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.List; import java.util.List;
@@ -67,7 +66,7 @@ public interface Importer {
@NotNull @NotNull
private static JetScope createFilteringScope( private static JetScope createFilteringScope(
@NotNull JetScope scope, @NotNull JetScope scope,
@NotNull DeclarationDescriptor descriptor, @NotNull PackageViewDescriptor descriptor,
@NotNull PlatformToKotlinClassMap platformToKotlinClassMap @NotNull PlatformToKotlinClassMap platformToKotlinClassMap
) { ) {
final Collection<ClassDescriptor> kotlinAnalogsForClassesInside = platformToKotlinClassMap.mapPlatformClassesInside(descriptor); final Collection<ClassDescriptor> kotlinAnalogsForClassesInside = platformToKotlinClassMap.mapPlatformClassesInside(descriptor);
@@ -86,23 +85,19 @@ public interface Importer {
} }
protected void importAllUnderDeclaration(@NotNull DeclarationDescriptor descriptor, @NotNull PlatformToKotlinClassMap platformToKotlinClassMap) { protected void importAllUnderDeclaration(@NotNull DeclarationDescriptor descriptor, @NotNull PlatformToKotlinClassMap platformToKotlinClassMap) {
List<JetScope> scopesToImport = new ArrayList<JetScope>(3);
if (descriptor instanceof PackageViewDescriptor) { if (descriptor instanceof PackageViewDescriptor) {
scopesToImport.add(new NoSubpackagesInPackageScope((PackageViewDescriptor) descriptor)); NoSubpackagesInPackageScope scope = new NoSubpackagesInPackageScope((PackageViewDescriptor) descriptor);
fileScope.importScope(createFilteringScope(scope, (PackageViewDescriptor) descriptor, platformToKotlinClassMap));
} }
else if (descriptor instanceof ClassDescriptor && ((ClassDescriptor) descriptor).getKind() != ClassKind.OBJECT) { else if (descriptor instanceof ClassDescriptor && ((ClassDescriptor) descriptor).getKind() != ClassKind.OBJECT) {
ClassDescriptor classDescriptor = (ClassDescriptor) descriptor; ClassDescriptor classDescriptor = (ClassDescriptor) descriptor;
scopesToImport.add(classDescriptor.getStaticScope()); fileScope.importScope(classDescriptor.getStaticScope());
scopesToImport.add(classDescriptor.getUnsubstitutedInnerClassesScope()); fileScope.importScope(classDescriptor.getUnsubstitutedInnerClassesScope());
ClassDescriptor classObjectDescriptor = classDescriptor.getClassObjectDescriptor(); ClassDescriptor classObjectDescriptor = classDescriptor.getClassObjectDescriptor();
if (classObjectDescriptor != null) { if (classObjectDescriptor != null) {
scopesToImport.add(classObjectDescriptor.getUnsubstitutedInnerClassesScope()); fileScope.importScope(classObjectDescriptor.getUnsubstitutedInnerClassesScope());
} }
} }
for (JetScope scope : scopesToImport) {
fileScope.importScope(createFilteringScope(scope, descriptor, platformToKotlinClassMap));
}
} }
protected void importDeclarationAlias(@NotNull DeclarationDescriptor descriptor, @NotNull Name aliasName) { protected void importDeclarationAlias(@NotNull DeclarationDescriptor descriptor, @NotNull Name aliasName) {