Refactoring. Change type of ResolvedCall#extensionReceiver from Receiver to ReceiverValue
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2015 JetBrains s.r.o.
|
||||
* Copyright 2010-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -32,7 +32,6 @@ import org.jetbrains.kotlin.resolve.BindingContext
|
||||
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.calls.model.ResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.calls.model.VariableAsFunctionResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
|
||||
|
||||
class UnusedReceiverParameterInspection : AbstractKotlinInspection() {
|
||||
override val suppressionKey: String get() = "unused"
|
||||
@@ -69,7 +68,7 @@ class UnusedReceiverParameterInspection : AbstractKotlinInspection() {
|
||||
private fun isUsageOfReceiver(resolvedCall: ResolvedCall<*>, bindingContext: BindingContext): Boolean {
|
||||
// As receiver of call
|
||||
if (resolvedCall.dispatchReceiver.getThisReceiverOwner(bindingContext) == callable ||
|
||||
(resolvedCall.extensionReceiver as ReceiverValue?).getThisReceiverOwner(bindingContext) == callable) {
|
||||
resolvedCall.extensionReceiver.getThisReceiverOwner(bindingContext) == callable) {
|
||||
return true
|
||||
}
|
||||
// As explicit "this"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2015 JetBrains s.r.o.
|
||||
* Copyright 2010-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -28,7 +28,6 @@ import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.psi.KtPsiFactory
|
||||
import org.jetbrains.kotlin.resolve.calls.callUtil.getResolvedCall
|
||||
import org.jetbrains.kotlin.resolve.lazy.BodyResolveMode
|
||||
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
|
||||
|
||||
class AddTypeToLHSOfCallableReferenceFix(
|
||||
expression: KtCallableReferenceExpression
|
||||
@@ -39,7 +38,7 @@ class AddTypeToLHSOfCallableReferenceFix(
|
||||
override fun invoke(project: Project, editor: Editor?, file: KtFile) {
|
||||
val resolvedCall = element.callableReference.getResolvedCall(element.analyze(BodyResolveMode.PARTIAL)) ?: return
|
||||
val receiver = with(resolvedCall) {
|
||||
dispatchReceiver ?: extensionReceiver as? ReceiverValue ?: return
|
||||
dispatchReceiver ?: extensionReceiver ?: return
|
||||
}
|
||||
val type = KtPsiFactory(project).createType(IdeDescriptorRenderers.SOURCE_CODE.renderType(receiver.type))
|
||||
element.setTypeReference(type)
|
||||
|
||||
+2
-5
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2010-2015 JetBrains s.r.o.
|
||||
* Copyright 2010-2016 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -191,11 +191,8 @@ class KotlinFunctionCallUsage(
|
||||
}
|
||||
else {
|
||||
addReceiver = descriptor !is ReceiverParameterDescriptor
|
||||
val extensionReceiver = resolvedCall.extensionReceiver
|
||||
argumentExpression =
|
||||
(if (extensionReceiver is ReceiverValue)
|
||||
getReceiverExpressionIfMatched(extensionReceiver, descriptor, psiFactory)
|
||||
else null)
|
||||
getReceiverExpressionIfMatched(resolvedCall.extensionReceiver, descriptor, psiFactory)
|
||||
?: getReceiverExpressionIfMatched(resolvedCall.dispatchReceiver, descriptor, psiFactory)
|
||||
}
|
||||
if (argumentExpression == null) continue
|
||||
|
||||
Reference in New Issue
Block a user