From 640fca42a47cc83f7530520a9151e316d26a1c61 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Mon, 21 May 2012 16:41:46 +0400 Subject: [PATCH] Fixed navigation to library sources when function has vararg parameter. --- .../jet/plugin/libraries/JetSourceNavigationHelper.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java b/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java index 4e825cad36a..7b53da1c51f 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java +++ b/idea/src/org/jetbrains/jet/plugin/libraries/JetSourceNavigationHelper.java @@ -254,8 +254,15 @@ public class JetSourceNavigationHelper { if (typeReference == null) { return false; } + JetModifierList modifierList = declarationParameter.getModifierList(); + boolean vararg = modifierList != null && modifierList.hasModifier(JetTokens.VARARG_KEYWORD); + if (vararg != (descriptorParameter.getVarargElementType() != null)) { + return false; + } String declarationTypeText = typeReference.getText(); - String descriptorParameterText = DescriptorRenderer.TEXT.renderType(descriptorParameter.getType()); + String descriptorParameterText = DescriptorRenderer.TEXT.renderType(vararg + ? descriptorParameter.getVarargElementType() + : descriptorParameter.getType()); if (!declarationTypeText.equals(descriptorParameterText)) { return false; }