KT-11030 When local function is declared inside constructor, capture this into this function

This commit is contained in:
Alexey Andreev
2016-03-23 16:25:07 +03:00
parent a74c613ec5
commit d9504dfe2b
@@ -74,7 +74,16 @@ class UsageTracker(
val value = descriptor.value
if (value !is ImplicitReceiver) return false
return DescriptorUtils.isObject(value.declarationDescriptor)
if (!DescriptorUtils.isObject(value.declarationDescriptor)) return false
if (containingDescriptor == value.declarationDescriptor) return false
if (containingDescriptor !is ClassDescriptor) {
val containingClass = generateSequence(containingDescriptor) { it.containingDeclaration as? MemberDescriptor }
.first { it is ClassDescriptor } as? ClassDescriptor
if (containingClass != null && containingClass == value.declarationDescriptor) return false
}
return true
}
private fun DeclarationDescriptor.getJsNameForCapturedDescriptor(): JsName {