Minor changes on code review

This commit is contained in:
Valentin Kipyatkov
2015-10-16 18:27:29 +03:00
parent 6cf7d92565
commit 55122cda9e
4 changed files with 10 additions and 13 deletions
@@ -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)
} }