Added distinguishing type parameters.

This commit is contained in:
Evgeny Gerashchenko
2012-03-14 21:44:13 +04:00
parent 129b508444
commit 353c3459eb
@@ -205,7 +205,25 @@ public class JetSourceNavigationHelper {
return getSourcePropertyOrFunction(decompiledFunction, decompiledFunction.getReceiverTypeRef(), new Matcher<JetFunction, FunctionDescriptor>() {
@Override
public boolean areSame(JetFunction declaration, FunctionDescriptor descriptor) {
// TODO check parameters
List<JetParameter> declarationParameters = declaration.getValueParameters();
List<ValueParameterDescriptor> 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;
}