Discriminate 'platform' declarations in resolution

Otherwise calls to functions which are declared twice (platform and impl) would
result in an error "conflicting overloads" in platform-specific modules
This commit is contained in:
Alexander Udalov
2016-11-17 14:52:43 +03:00
parent 926b81fb35
commit a3cfd3962c
3 changed files with 12 additions and 4 deletions
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.resolve.calls.results
import org.jetbrains.kotlin.builtins.KotlinBuiltIns
import org.jetbrains.kotlin.descriptors.MemberDescriptor
import org.jetbrains.kotlin.psi.ValueArgument
import org.jetbrains.kotlin.resolve.DescriptorToSourceUtils
import org.jetbrains.kotlin.resolve.calls.inference.ConstraintSystemBuilderImpl
@@ -55,7 +56,8 @@ fun <RC : ResolvedCall<*>> RC.createFlatSignature(): FlatSignature<RC> {
call.valueArguments.map { valueArgumentToParameterType[it] },
hasExtensionReceiver = originalDescriptor.extensionReceiverParameter != null,
hasVarargs = originalDescriptor.valueParameters.any { it.varargElementType != null },
numDefaults = numDefaults)
numDefaults = numDefaults,
isPlatform = originalDescriptor is MemberDescriptor && originalDescriptor.isPlatform)
}
fun createOverloadingConflictResolver(