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 checkedQuickFixClasses = HashSet<Class<*>>()
private val checkedQuickFixClasses = Collections.synchronizedSet(HashSet<Class<*>>())
private fun check(quickFixClass: Class<*>) {
if (!checkedQuickFixClasses.add(quickFixClass)) return
@@ -131,7 +131,7 @@ public class AddFunctionParametersFix(
private fun getNewParameterInfo(
functionDescriptor: FunctionDescriptor,
argument: ValueArgument,
validator: Function1<String, Boolean>
validator: (String) -> Boolean
): JetParameterInfo {
val name = getNewArgumentName(argument, validator)
val expression = argument.getArgumentExpression()
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.psi.JetFile
import org.jetbrains.kotlin.psi.JetFunctionLiteral
import org.jetbrains.kotlin.types.JetType
class ChangeFunctionLiteralSignatureFix(
class ChangeFunctionLiteralSignatureFix private constructor(
functionLiteral: JetFunctionLiteral,
functionDescriptor: FunctionDescriptor,
private val parameterTypes: List<JetType>
@@ -88,19 +88,17 @@ abstract class ChangeFunctionSignatureFix(
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? {
val functionDescriptor = when (descriptor) {
is FunctionDescriptor -> descriptor as FunctionDescriptor
else -> if (descriptor is ValueParameterDescriptor) descriptor.containingDeclaration as? FunctionDescriptor
else null
} ?: return null
private fun createFix(callElement: JetCallElement, descriptor: CallableDescriptor): ChangeFunctionSignatureFix? {
val functionDescriptor = descriptor as? FunctionDescriptor
?: (descriptor as? ValueParameterDescriptor)?.containingDeclaration as? FunctionDescriptor
?: return null
if (functionDescriptor.kind == SYNTHESIZED) return null
if (descriptor is ValueParameterDescriptor) {
return RemoveParameterFix(context, functionDescriptor, descriptor)
return RemoveParameterFix(callElement, functionDescriptor, descriptor)
}
else {
val parameters = functionDescriptor.valueParameters
@@ -111,8 +109,7 @@ abstract class ChangeFunctionSignatureFix(
val call = callElement.getCall(bindingContext) ?: return null
val argumentToParameter = call.mapArgumentsToParameters(functionDescriptor)
val hasTypeMismatches = argumentToParameter.any {
val argument = it.key
val parameter = it.value
val (argument, parameter) = it
val argumentType = argument.getArgumentExpression()?.let { bindingContext.getType(it) }
argumentType == null || !JetTypeChecker.DEFAULT.isSubtypeOf(argumentType, parameter.type)
}