K2: handle recursive types properly in approximation
This commit is intended to deal with inconsistency in K1/K2 star projection handling. K1 star projection includes a 'type' property. This type from a star projection can be used for relevant functions / properties return types, and already includes some approximation for recursive generics. In contrast, K2 star projection is an object, and return types of relevant functions / properties are represented as captured types. To prevent recursion in them in recursive generic case, this commit includes additional replacement of their type arguments. See more details in added comments. #KT-65057 Fixed
This commit is contained in:
committed by
Space Team
parent
c4d6554493
commit
94bcf6d87f
+1
-1
@@ -54,7 +54,7 @@ fun resolveClashesIfAny(container: ComponentContainer, clashResolvers: List<Plat
|
||||
else -> tmp_1
|
||||
}
|
||||
}
|
||||
val substituteDescriptor: ClashResolutionDescriptor<out PlatformSpecificExtension<out PlatformSpecificExtension<out PlatformSpecificExtension<out PlatformSpecificExtension<out PlatformSpecificExtension<out Any?>>>>>> = ClashResolutionDescriptor<PlatformSpecificExtension<out PlatformSpecificExtension<out PlatformSpecificExtension<out PlatformSpecificExtension<out PlatformSpecificExtension<out Any?>>>>>>(container = container, resolver = resolver, clashedComponents = clashedComponents.toList<ComponentDescriptor>())
|
||||
val substituteDescriptor: ClashResolutionDescriptor<out PlatformSpecificExtension<*>> = ClashResolutionDescriptor<PlatformSpecificExtension<*>>(container = container, resolver = resolver, clashedComponents = clashedComponents.toList<ComponentDescriptor>())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user