Report incomplete hierarchy error for deserialized types
#KT-5129 Fixed Delete a JPS test that was specifically testing that we would not fail in this situation; now there's a compilation error
This commit is contained in:
+5
-3
@@ -22,7 +22,6 @@ import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.load.kotlin.BinaryClassAnnotationAndConstantLoaderImpl
|
||||
import org.jetbrains.kotlin.load.kotlin.JavaFlexibleTypeCapabilitiesDeserializer
|
||||
import org.jetbrains.kotlin.load.kotlin.KotlinBinaryClassCache
|
||||
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.serialization.deserialization.ClassDescriptorFactory
|
||||
@@ -46,12 +45,15 @@ public class DeserializerForDecompiler(
|
||||
|
||||
override val classDataFinder = DirectoryBasedDataFinder(classFinder, LOG)
|
||||
|
||||
private val errorReporter = LoggingErrorReporter(LOG)
|
||||
|
||||
override val annotationAndConstantLoader =
|
||||
BinaryClassAnnotationAndConstantLoaderImpl(moduleDescriptor, storageManager, classFinder, LoggingErrorReporter(LOG))
|
||||
BinaryClassAnnotationAndConstantLoaderImpl(moduleDescriptor, storageManager, classFinder, errorReporter)
|
||||
|
||||
override val deserializationComponents: DeserializationComponents = DeserializationComponents(
|
||||
storageManager, moduleDescriptor, classDataFinder, annotationAndConstantLoader, packageFragmentProvider,
|
||||
ResolveEverythingToKotlinAnyLocalClassResolver, JavaFlexibleTypeCapabilitiesDeserializer, ClassDescriptorFactory.EMPTY
|
||||
ResolveEverythingToKotlinAnyLocalClassResolver, errorReporter, JavaFlexibleTypeCapabilitiesDeserializer,
|
||||
ClassDescriptorFactory.EMPTY
|
||||
)
|
||||
|
||||
override fun resolveDeclarationsInFacade(facadeFqName: FqName): Collection<DeclarationDescriptor> {
|
||||
|
||||
+5
-8
@@ -20,13 +20,9 @@ import com.intellij.openapi.diagnostic.Logger
|
||||
import com.intellij.openapi.vfs.VirtualFile
|
||||
import org.jetbrains.kotlin.descriptors.DeclarationDescriptor
|
||||
import org.jetbrains.kotlin.idea.decompiler.navigation.JsMetaFileUtils
|
||||
import org.jetbrains.kotlin.load.kotlin.PackageClassUtils
|
||||
import org.jetbrains.kotlin.name.ClassId
|
||||
import org.jetbrains.kotlin.name.FqName
|
||||
import org.jetbrains.kotlin.serialization.deserialization.ClassDescriptorFactory
|
||||
import org.jetbrains.kotlin.serialization.deserialization.DeserializationComponents
|
||||
import org.jetbrains.kotlin.serialization.deserialization.FlexibleTypeCapabilitiesDeserializer
|
||||
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
|
||||
import org.jetbrains.kotlin.serialization.deserialization.*
|
||||
import org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedPackageMemberScope
|
||||
import org.jetbrains.kotlin.serialization.js.KotlinJavascriptAnnotationAndConstantLoader
|
||||
import org.jetbrains.kotlin.serialization.js.KotlinJavascriptSerializedResourcePaths
|
||||
@@ -41,7 +37,7 @@ public class KotlinJavaScriptDeserializerForDecompiler(
|
||||
val moduleDirectory = JsMetaFileUtils.getModuleDirectory(packageDirectory)
|
||||
val stringsFileName = KotlinJavascriptSerializedResourcePaths.getStringTableFilePath(directoryPackageFqName)
|
||||
val stringsFile = moduleDirectory.findFileByRelativePath(stringsFileName)
|
||||
assert(stringsFile != null, "strings file not found: $stringsFileName")
|
||||
assert(stringsFile != null) { "strings file not found: $stringsFileName" }
|
||||
NameResolver.read(ByteArrayInputStream(stringsFile!!.contentsToByteArray(false)))
|
||||
}
|
||||
|
||||
@@ -53,7 +49,8 @@ public class KotlinJavaScriptDeserializerForDecompiler(
|
||||
|
||||
override val deserializationComponents = DeserializationComponents(
|
||||
storageManager, moduleDescriptor, classDataFinder, annotationAndConstantLoader, packageFragmentProvider,
|
||||
ResolveEverythingToKotlinAnyLocalClassResolver, FlexibleTypeCapabilitiesDeserializer.Dynamic, ClassDescriptorFactory.EMPTY
|
||||
ResolveEverythingToKotlinAnyLocalClassResolver, ErrorReporter.DO_NOTHING, FlexibleTypeCapabilitiesDeserializer.Dynamic,
|
||||
ClassDescriptorFactory.EMPTY
|
||||
)
|
||||
|
||||
override fun resolveDeclarationsInFacade(facadeFqName: FqName): Collection<DeclarationDescriptor> {
|
||||
@@ -80,6 +77,6 @@ public class KotlinJavaScriptDeserializerForDecompiler(
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val LOG = Logger.getInstance(javaClass<KotlinJavaScriptDeserializerForDecompiler>())
|
||||
private val LOG = Logger.getInstance(KotlinJavaScriptDeserializerForDecompiler::class.java)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user