DECLARATION_TO_DESCRIPTOR may fail on fake overrides

see 4b94eb5e2b
This commit is contained in:
Stepan Koltsov
2012-02-14 17:34:37 +04:00
parent 1d2e02afb4
commit 3c714b1178
@@ -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));
}
}