Minor changes on code review
This commit is contained in:
@@ -259,7 +259,7 @@ public open class JetPsiChecker : Annotator, HighlightRangeExtension {
|
|||||||
|
|
||||||
private val LOG = Logger.getInstance(JetPsiChecker::class.java)
|
private val LOG = Logger.getInstance(JetPsiChecker::class.java)
|
||||||
|
|
||||||
private val checkedQuickFixClasses = HashSet<Class<*>>()
|
private val checkedQuickFixClasses = Collections.synchronizedSet(HashSet<Class<*>>())
|
||||||
|
|
||||||
private fun check(quickFixClass: Class<*>) {
|
private fun check(quickFixClass: Class<*>) {
|
||||||
if (!checkedQuickFixClasses.add(quickFixClass)) return
|
if (!checkedQuickFixClasses.add(quickFixClass)) return
|
||||||
|
|||||||
@@ -131,7 +131,7 @@ public class AddFunctionParametersFix(
|
|||||||
private fun getNewParameterInfo(
|
private fun getNewParameterInfo(
|
||||||
functionDescriptor: FunctionDescriptor,
|
functionDescriptor: FunctionDescriptor,
|
||||||
argument: ValueArgument,
|
argument: ValueArgument,
|
||||||
validator: Function1<String, Boolean>
|
validator: (String) -> Boolean
|
||||||
): JetParameterInfo {
|
): JetParameterInfo {
|
||||||
val name = getNewArgumentName(argument, validator)
|
val name = getNewArgumentName(argument, validator)
|
||||||
val expression = argument.getArgumentExpression()
|
val expression = argument.getArgumentExpression()
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.psi.JetFile
|
|||||||
import org.jetbrains.kotlin.psi.JetFunctionLiteral
|
import org.jetbrains.kotlin.psi.JetFunctionLiteral
|
||||||
import org.jetbrains.kotlin.types.JetType
|
import org.jetbrains.kotlin.types.JetType
|
||||||
|
|
||||||
class ChangeFunctionLiteralSignatureFix(
|
class ChangeFunctionLiteralSignatureFix private constructor(
|
||||||
functionLiteral: JetFunctionLiteral,
|
functionLiteral: JetFunctionLiteral,
|
||||||
functionDescriptor: FunctionDescriptor,
|
functionDescriptor: FunctionDescriptor,
|
||||||
private val parameterTypes: List<JetType>
|
private val parameterTypes: List<JetType>
|
||||||
|
|||||||
@@ -88,19 +88,17 @@ abstract class ChangeFunctionSignatureFix(
|
|||||||
return Data(element, descriptor)
|
return Data(element, descriptor)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun createFix(data: Data) = createFix(data.callElement, data.callElement, data.descriptor)
|
override fun createFix(data: Data) = createFix(data.callElement, data.descriptor)
|
||||||
|
|
||||||
private fun createFix(callElement: JetCallElement, context: PsiElement, descriptor: CallableDescriptor): ChangeFunctionSignatureFix? {
|
private fun createFix(callElement: JetCallElement, descriptor: CallableDescriptor): ChangeFunctionSignatureFix? {
|
||||||
val functionDescriptor = when (descriptor) {
|
val functionDescriptor = descriptor as? FunctionDescriptor
|
||||||
is FunctionDescriptor -> descriptor as FunctionDescriptor
|
?: (descriptor as? ValueParameterDescriptor)?.containingDeclaration as? FunctionDescriptor
|
||||||
else -> if (descriptor is ValueParameterDescriptor) descriptor.containingDeclaration as? FunctionDescriptor
|
?: return null
|
||||||
else null
|
|
||||||
} ?: return null
|
|
||||||
|
|
||||||
if (functionDescriptor.kind == SYNTHESIZED) return null
|
if (functionDescriptor.kind == SYNTHESIZED) return null
|
||||||
|
|
||||||
if (descriptor is ValueParameterDescriptor) {
|
if (descriptor is ValueParameterDescriptor) {
|
||||||
return RemoveParameterFix(context, functionDescriptor, descriptor)
|
return RemoveParameterFix(callElement, functionDescriptor, descriptor)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
val parameters = functionDescriptor.valueParameters
|
val parameters = functionDescriptor.valueParameters
|
||||||
@@ -111,8 +109,7 @@ abstract class ChangeFunctionSignatureFix(
|
|||||||
val call = callElement.getCall(bindingContext) ?: return null
|
val call = callElement.getCall(bindingContext) ?: return null
|
||||||
val argumentToParameter = call.mapArgumentsToParameters(functionDescriptor)
|
val argumentToParameter = call.mapArgumentsToParameters(functionDescriptor)
|
||||||
val hasTypeMismatches = argumentToParameter.any {
|
val hasTypeMismatches = argumentToParameter.any {
|
||||||
val argument = it.key
|
val (argument, parameter) = it
|
||||||
val parameter = it.value
|
|
||||||
val argumentType = argument.getArgumentExpression()?.let { bindingContext.getType(it) }
|
val argumentType = argument.getArgumentExpression()?.let { bindingContext.getType(it) }
|
||||||
argumentType == null || !JetTypeChecker.DEFAULT.isSubtypeOf(argumentType, parameter.type)
|
argumentType == null || !JetTypeChecker.DEFAULT.isSubtypeOf(argumentType, parameter.type)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user