Minor. Small clean-up in KLIB decompiler

This commit is contained in:
Dmitriy Dolovov
2020-10-09 13:20:10 +03:00
parent 3eeaa07e0c
commit 3495ec198d
3 changed files with 5 additions and 15 deletions
@@ -80,9 +80,7 @@ abstract class KlibMetadataDecompiler<out V : BinaryVersion>(
private fun buildDecompiledText(virtualFile: VirtualFile): DecompiledText {
assert(virtualFile.fileType == fileType) { "Unexpected file type ${virtualFile.fileType}" }
val file = readFileSafely(virtualFile)
return when (file) {
return when (val file = readFileSafely(virtualFile)) {
is FileWithMetadata.Incompatible -> createIncompatibleAbiVersionDecompiledText(expectedBinaryVersion(), file.version)
is FileWithMetadata.Compatible -> decompiledText(
file,
@@ -98,10 +96,7 @@ abstract class KlibMetadataDecompiler<out V : BinaryVersion>(
sealed class FileWithMetadata {
class Incompatible(val version: BinaryVersion) : FileWithMetadata()
open class Compatible(
val proto: ProtoBuf.PackageFragment,
serializerProtocol: SerializerExtensionProtocol // TODO: Is it required?
) : FileWithMetadata() {
open class Compatible(val proto: ProtoBuf.PackageFragment) : FileWithMetadata() {
val nameResolver = NameResolverImpl(proto.strings, proto.qualifiedNames)
val packageFqName = FqName(proto.getExtension(KlibMetadataProtoBuf.fqName))
@@ -42,9 +42,7 @@ class KlibMetadataDeserializerForDecompiler(
storageManager, moduleDescriptor, DeserializationConfiguration.Default,
KlibMetadataClassDataFinder(proto, nameResolver),
AnnotationAndConstantLoaderImpl(moduleDescriptor, notFoundClasses, serializerProtocol), packageFragmentProvider,
ResolveEverythingToKotlinAnyLocalClassifierResolver(builtIns), createLoggingErrorReporter(
LOG
),
ResolveEverythingToKotlinAnyLocalClassifierResolver(builtIns), LoggingErrorReporter(LOG),
LookupTracker.DO_NOTHING, flexibleTypeDeserializer, emptyList(), notFoundClasses, ContractDeserializer.DEFAULT,
extensionRegistryLite = serializerProtocol.extensionRegistry,
samConversionResolver = SamConversionResolverImpl(storageManager, samWithReceiverResolvers = emptyList())
@@ -72,5 +70,3 @@ class KlibMetadataDeserializerForDecompiler(
private val LOG = Logger.getInstance(KlibMetadataDeserializerForDecompiler::class.java)
}
}
fun createLoggingErrorReporter(log: Logger) = LoggingErrorReporter(log)
@@ -23,8 +23,7 @@ class KotlinNativeMetadataDecompiler : KlibMetadataDecompiler<KlibMetadataVersio
KlibMetaFileType.STUB_VERSION
) {
override fun doReadFile(file: VirtualFile): FileWithMetadata? {
val fragment = KlibLoadingMetadataCache
.getInstance().getCachedPackageFragment(file) ?: return null
return FileWithMetadata.Compatible(fragment, KlibMetadataSerializerProtocol) //todo: check version compatibility
val fragment = KlibLoadingMetadataCache.getInstance().getCachedPackageFragment(file) ?: return null
return FileWithMetadata.Compatible(fragment) //todo: check version compatibility
}
}