Do not add receiver for function expression by expected type.

This commit is contained in:
Stanislav Erokhin
2016-07-27 16:26:43 +03:00
parent 2b63c6a2d5
commit 2c2f105c5d
4 changed files with 18 additions and 7 deletions
@@ -16,10 +16,7 @@
package org.jetbrains.kotlin.resolve
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.builtins.getReceiverTypeFromFunctionType
import org.jetbrains.kotlin.builtins.getValueParameterTypesFromFunctionType
import org.jetbrains.kotlin.builtins.isFunctionType
import org.jetbrains.kotlin.builtins.*
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.descriptors.annotations.Annotations
import org.jetbrains.kotlin.descriptors.impl.ConstructorDescriptorImpl
@@ -152,10 +149,12 @@ class FunctionDescriptorResolver(
val receiverTypeRef = function.receiverTypeReference
val receiverType =
if (receiverTypeRef != null)
if (receiverTypeRef != null) {
typeResolver.resolveType(innerScope, receiverTypeRef, trace, true)
else
expectedFunctionType.getReceiverType()
}
else {
if (function is KtFunctionLiteral) expectedFunctionType.getReceiverType() else null
}
val valueParameterDescriptors = createValueParameterDescriptors(function, functionDescriptor, innerScope, trace, expectedFunctionType)