Fix decompilation of types based on local classifiers
If deserializing a type with arguments based on a local class for decompiler, then just return Any type (without arguments). Previously Any constructor was used with serialized arguments, that lead to exception Note that in case of deserialization for compiler nothing changes about local-classes-based types (LocalClassifierResolverImpl is just inlined) #KT-13408 Fixed
This commit is contained in:
+2
-3
@@ -37,15 +37,14 @@ class DeserializationComponentsForJava(
|
||||
val components: DeserializationComponents
|
||||
|
||||
init {
|
||||
val localClassResolver = LocalClassifierResolverImpl()
|
||||
val settings = JvmBuiltInsSettings(moduleDescriptor, storageManager, { moduleDescriptor })
|
||||
components = DeserializationComponents(
|
||||
storageManager, moduleDescriptor, classDataFinder, annotationAndConstantLoader, packageFragmentProvider, localClassResolver,
|
||||
storageManager, moduleDescriptor, classDataFinder, annotationAndConstantLoader, packageFragmentProvider,
|
||||
LocalClassifierTypeSettings.Default,
|
||||
errorReporter, lookupTracker, JavaFlexibleTypeDeserializer, ClassDescriptorFactory.EMPTY,
|
||||
notFoundClasses,
|
||||
additionalClassPartsProvider = settings,
|
||||
platformDependentDeclarationFilter = settings
|
||||
)
|
||||
localClassResolver.setDeserializationComponents(components)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user