diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java b/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java index 209f58f19a3..7a6d72d4ecb 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java +++ b/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java @@ -205,7 +205,25 @@ public class JetSourceNavigationHelper { return getSourcePropertyOrFunction(decompiledFunction, decompiledFunction.getReceiverTypeRef(), new Matcher() { @Override public boolean areSame(JetFunction declaration, FunctionDescriptor descriptor) { - // TODO check parameters + List declarationParameters = declaration.getValueParameters(); + List descriptorParameters = descriptor.getValueParameters(); + if (descriptorParameters.size() != declarationParameters.size()) { + return false; + } + + for (int i = 0; i < descriptorParameters.size(); i++) { + ValueParameterDescriptor descriptorParameter = descriptorParameters.get(i); + JetParameter declarationParameter = declarationParameters.get(i); + JetTypeReference typeReference = declarationParameter.getTypeReference(); + if (typeReference == null) { + return false; + } + String declarationTypeText = typeReference.getText(); + String descriptorParameterText = DescriptorRenderer.TEXT.renderType(descriptorParameter.getType()); + if (!declarationTypeText.equals(descriptorParameterText)) { + return false; + } + } return true; }