From 3c714b117871fdffc48f19e2275c61c6dcfbccbc Mon Sep 17 00:00:00 2001 From: Stepan Koltsov Date: Tue, 14 Feb 2012 17:34:37 +0400 Subject: [PATCH] DECLARATION_TO_DESCRIPTOR may fail on fake overrides see 4b94eb5e2b5cb5807763291b9a4419a02b03800d --- .../jet/plugin/completion/DescriptorLookupConverter.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/idea/src/org/jetbrains/jet/plugin/completion/DescriptorLookupConverter.java b/idea/src/org/jetbrains/jet/plugin/completion/DescriptorLookupConverter.java index 4503b9e7378..90b84e17f4f 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/DescriptorLookupConverter.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/DescriptorLookupConverter.java @@ -81,6 +81,14 @@ public final class DescriptorLookupConverter { @NotNull public static LookupElement createLookupElement(@NotNull BindingContext bindingContext, @NotNull DeclarationDescriptor descriptor) { + if (descriptor instanceof CallableMemberDescriptor) { + CallableMemberDescriptor callableMemberDescriptor = (CallableMemberDescriptor) descriptor; + while (callableMemberDescriptor.getKind() == CallableMemberDescriptor.Kind.FAKE_OVERRIDE) { + // TODO: need to know all of them + callableMemberDescriptor = callableMemberDescriptor.getOverriddenDescriptors().iterator().next(); + } + descriptor = callableMemberDescriptor; + } return createLookupElement(descriptor, bindingContext.get(BindingContext.DESCRIPTOR_TO_DECLARATION, descriptor)); } }