From 619e2d4210df2062ad3b1aed9cb004a1b89d2a40 Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Tue, 12 Mar 2013 20:39:31 +0400 Subject: [PATCH] Don't complete packages for Java static classes in package directive. --- .../jet/plugin/codeInsight/TipsManager.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/idea/src/org/jetbrains/jet/plugin/codeInsight/TipsManager.java b/idea/src/org/jetbrains/jet/plugin/codeInsight/TipsManager.java index 70c1c439805..94730a05111 100644 --- a/idea/src/org/jetbrains/jet/plugin/codeInsight/TipsManager.java +++ b/idea/src/org/jetbrains/jet/plugin/codeInsight/TipsManager.java @@ -177,7 +177,17 @@ public final class TipsManager { return Collections2.filter(descriptors, new Predicate() { @Override public boolean apply(DeclarationDescriptor declarationDescriptor) { - return declarationDescriptor instanceof NamespaceDescriptor; + if (declarationDescriptor instanceof NamespaceDescriptor) { + // Heuristic: we don't want to complete "System" in "package java.lang.Sys", + // so we find class of the same name as namespace, we exclude this namespace + DeclarationDescriptor parent = declarationDescriptor.getContainingDeclaration(); + if (parent instanceof NamespaceDescriptor) { + JetScope parentScope = ((NamespaceDescriptor) parent).getMemberScope(); + return parentScope.getClassifier(declarationDescriptor.getName()) == null; + } + return true; + } + return false; } }); }