Fix capturing of outer type parameters for classes declared inside init block

This commit is contained in:
Pavel Kirpichenkov
2019-10-07 17:43:34 +03:00
parent 5e1efead9a
commit 42740c8b97
7 changed files with 46 additions and 1 deletions
@@ -30,7 +30,9 @@ fun ClassifierDescriptorWithTypeParameters.computeConstructorTypeParameters(): L
val parametersFromContainingFunctions =
parents.takeWhile { it is CallableDescriptor }
.flatMap { (it as CallableDescriptor).typeParameters.asSequence() }.toList()
.filter { it !is ConstructorDescriptor }
.flatMap { (it as CallableDescriptor).typeParameters.asSequence() }
.toList()
val containingClassTypeConstructorParameters = parents.firstIsInstanceOrNull<ClassDescriptor>()?.typeConstructor?.parameters.orEmpty()
if (parametersFromContainingFunctions.isEmpty() && containingClassTypeConstructorParameters.isEmpty()) return declaredTypeParameters