Changed element parameter for EXPECTED_PARAMETERS_NUMBER_MISMATCH diagnostic

This commit is contained in:
Stanislav Erokhin
2015-03-03 16:14:08 +03:00
parent 072a9f4977
commit 0c74675e6e
3 changed files with 12 additions and 9 deletions
@@ -614,8 +614,8 @@ public interface Errors {
DiagnosticFactory1<JetParameter, JetType> EXPECTED_PARAMETER_TYPE_MISMATCH = DiagnosticFactory1.create(ERROR);
DiagnosticFactory1<JetTypeReference, JetType> EXPECTED_RETURN_TYPE_MISMATCH = DiagnosticFactory1.create(ERROR);
DiagnosticFactory2<JetFunctionLiteral, Integer, List<JetType>> EXPECTED_PARAMETERS_NUMBER_MISMATCH =
DiagnosticFactory2.create(ERROR, FUNCTION_LITERAL_PARAMETERS);
DiagnosticFactory2<JetFunction, Integer, List<JetType>> EXPECTED_PARAMETERS_NUMBER_MISMATCH =
DiagnosticFactory2.create(ERROR, FUNCTION_PARAMETERS);
DiagnosticFactory2<JetElement, JetType, JetType> INCOMPATIBLE_TYPES = DiagnosticFactory2.create(ERROR);
@@ -342,13 +342,16 @@ public object PositioningStrategies {
}
}
public val FUNCTION_LITERAL_PARAMETERS: PositioningStrategy<JetFunctionLiteral> = object : PositioningStrategy<JetFunctionLiteral>() {
override fun mark(element: JetFunctionLiteral): List<TextRange> {
public val FUNCTION_PARAMETERS: PositioningStrategy<JetFunction> = object : PositioningStrategy<JetFunction>() {
override fun mark(element: JetFunction): List<TextRange> {
val valueParameterList = element.getValueParameterList()
if (valueParameterList != null) {
return markElement(valueParameterList)
}
return markNode(element.getLBrace().getNode())
if (element is JetFunctionLiteral) {
return markNode(element.getLBrace().getNode())
}
return DECLARATION_SIGNATURE_OR_DEFAULT.mark(element)
}
}
@@ -165,15 +165,15 @@ public abstract class ChangeFunctionSignatureFix extends JetIntentionAction<PsiE
return new JetSingleIntentionActionFactory() {
@Override
public ChangeFunctionSignatureFix createAction(Diagnostic diagnostic) {
DiagnosticWithParameters2<JetFunctionLiteral, Integer, List<JetType>> diagnosticWithParameters =
DiagnosticWithParameters2<JetFunction, Integer, List<JetType>> diagnosticWithParameters =
EXPECTED_PARAMETERS_NUMBER_MISMATCH.cast(diagnostic);
JetFunctionLiteral functionLiteral = diagnosticWithParameters.getPsiElement();
JetFunction functionLiteral = diagnosticWithParameters.getPsiElement();
BindingContext bindingContext =
ResolvePackage.analyzeFully(functionLiteral.getContainingJetFile());
DeclarationDescriptor descriptor = bindingContext.get(BindingContext.DECLARATION_TO_DESCRIPTOR, functionLiteral);
if (descriptor instanceof FunctionDescriptor) {
return new ChangeFunctionLiteralSignatureFix(functionLiteral, (FunctionDescriptor) descriptor,
if (descriptor instanceof FunctionDescriptor && functionLiteral instanceof JetFunctionLiteral) {
return new ChangeFunctionLiteralSignatureFix((JetFunctionLiteral) functionLiteral, (FunctionDescriptor) descriptor,
diagnosticWithParameters.getB());
}
else {