[FE 1.0] Substitute anonymous object's supertypes while using that in public declarations
^KT-46136 Fixed
This commit is contained in:
committed by
teamcity
parent
2c5d817633
commit
3aabc8d666
@@ -21,7 +21,9 @@ import org.jetbrains.kotlin.descriptors.Substitutable
|
||||
import org.jetbrains.kotlin.incremental.components.LookupLocation
|
||||
import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.calls.inference.wrapWithCapturingSubstitution
|
||||
import org.jetbrains.kotlin.types.KotlinType
|
||||
import org.jetbrains.kotlin.types.TypeSubstitutor
|
||||
import org.jetbrains.kotlin.types.checker.SimpleClassicTypeSystemContext.safeSubstitute
|
||||
import org.jetbrains.kotlin.utils.Printer
|
||||
import org.jetbrains.kotlin.utils.newLinkedHashSetWithExpectedSize
|
||||
import org.jetbrains.kotlin.utils.sure
|
||||
@@ -35,6 +37,11 @@ class SubstitutingScope(private val workerScope: MemberScope, givenSubstitutor:
|
||||
|
||||
private val _allDescriptors by lazy { substitute(workerScope.getContributedDescriptors()) }
|
||||
|
||||
fun substitute(type: KotlinType): KotlinType {
|
||||
if (substitutor.isEmpty) return type
|
||||
return substitutor.safeSubstitute(type) as KotlinType
|
||||
}
|
||||
|
||||
private fun <D : DeclarationDescriptor> substitute(descriptor: D): D {
|
||||
if (substitutor.isEmpty) return descriptor
|
||||
|
||||
|
||||
Reference in New Issue
Block a user