diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledTextFactory.kt b/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledTextFactory.kt index 9a263e295b3..8fcd2bd06ed 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledTextFactory.kt +++ b/idea/src/org/jetbrains/jet/plugin/libraries/DecompiledTextFactory.kt @@ -44,7 +44,7 @@ public fun buildDecompiledText( buildDecompiledText(packageFqName, ArrayList(resolver.resolveDeclarationsInPackage(packageFqName))) } else if (kind == KotlinClassHeader.Kind.CLASS) { - buildDecompiledText(packageFqName, listOf(resolver.resolveClass(classFqName)).filterNotNull()) + buildDecompiledText(packageFqName, listOf(resolver.resolveTopLevelClass(classFqName)).filterNotNull()) } else { throw UnsupportedOperationException("Unknown header kind: " + kind) diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/DeserializerForDecompiler.kt b/idea/src/org/jetbrains/jet/plugin/libraries/DeserializerForDecompiler.kt index 13b676ff6c6..0e728a5217b 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/DeserializerForDecompiler.kt +++ b/idea/src/org/jetbrains/jet/plugin/libraries/DeserializerForDecompiler.kt @@ -56,7 +56,7 @@ public fun DeserializerForDecompiler(classFile: VirtualFile): DeserializerForDec public class DeserializerForDecompiler(val packageDirectory: VirtualFile, val directoryPackageFqName: FqName) : ResolverForDecompiler { - override fun resolveClass(classFqName: FqName) = classes(classFqName.toClassId()) + override fun resolveTopLevelClass(classFqName: FqName) = classes(classFqName.toClassId()) override fun resolveDeclarationsInPackage(packageFqName: FqName): Collection { assert(packageFqName == directoryPackageFqName, "Was called for $packageFqName but only $directoryPackageFqName is expected.") diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/ResolverForDecompiler.kt b/idea/src/org/jetbrains/jet/plugin/libraries/ResolverForDecompiler.kt index c4df77ff697..e9d6f9c22b2 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/ResolverForDecompiler.kt +++ b/idea/src/org/jetbrains/jet/plugin/libraries/ResolverForDecompiler.kt @@ -21,6 +21,6 @@ import org.jetbrains.jet.lang.resolve.name.FqName import org.jetbrains.jet.lang.descriptors.ClassDescriptor trait ResolverForDecompiler { - fun resolveClass(classFqName: FqName): ClassDescriptor? + fun resolveTopLevelClass(classFqName: FqName): ClassDescriptor? fun resolveDeclarationsInPackage(packageFqName: FqName): Collection } \ No newline at end of file diff --git a/idea/tests/org/jetbrains/jet/plugin/libraries/DecompiledTextConsistencyTest.kt b/idea/tests/org/jetbrains/jet/plugin/libraries/DecompiledTextConsistencyTest.kt index 898a012c5f7..d8253c43387 100644 --- a/idea/tests/org/jetbrains/jet/plugin/libraries/DecompiledTextConsistencyTest.kt +++ b/idea/tests/org/jetbrains/jet/plugin/libraries/DecompiledTextConsistencyTest.kt @@ -30,6 +30,10 @@ import org.jetbrains.jet.plugin.caches.resolve.JavaResolveExtension import org.jetbrains.jet.lang.descriptors.CallableDescriptor import org.jetbrains.jet.lang.resolve.DescriptorUtils import org.jetbrains.jet.lang.types.lang.KotlinBuiltIns +import org.jetbrains.jet.lang.resolve.resolveTopLevelClass +import org.jetbrains.jet.lang.descriptors.CallableMemberDescriptor +import org.jetbrains.jet.plugin.caches.resolve.KotlinCacheService +import org.jetbrains.jet.plugin.project.TargetPlatform public class DecompiledTextConsistencyTest : JetLightCodeInsightFixtureTestCase() { @@ -54,19 +58,16 @@ public class DecompiledTextConsistencyTest : JetLightCodeInsightFixtureTestCase( } class ProjectBasedResolverForDecompiler(project: Project) : ResolverForDecompiler { - val javaDescriptorResolver = JavaResolveExtension[project] + val module = KotlinCacheService.getInstance(project).getGlobalLazyResolveSession(TargetPlatform.JVM).getModuleDescriptor() - override fun resolveClass(classFqName: FqName): ClassDescriptor? { - return javaDescriptorResolver.resolveClass(classFqName) + override fun resolveTopLevelClass(classFqName: FqName): ClassDescriptor? { + return module.resolveTopLevelClass(classFqName) } override fun resolveDeclarationsInPackage(packageFqName: FqName): Collection { - val packageView = javaDescriptorResolver.getModule().getPackage(packageFqName) - if (packageView == null) { - return Collections.emptyList() - } + val packageView = module.getPackage(packageFqName) ?: return listOf() return packageView.getMemberScope().getAllDescriptors() filter { - it is CallableDescriptor && DescriptorUtils.getContainingModule(it) != KotlinBuiltIns.getInstance().getBuiltInsModule() + it is CallableMemberDescriptor && DescriptorUtils.getContainingModule(it) != KotlinBuiltIns.getInstance().getBuiltInsModule() } } } \ No newline at end of file