From 31b536a8e58c7ca1f572e90828ddf82725596825 Mon Sep 17 00:00:00 2001 From: Nikolay Krasko Date: Wed, 14 Dec 2011 11:03:04 +0400 Subject: [PATCH] KT-822: Assertion during completion of the subpackage in function --- .../plugin/references/JetSimpleNameReference.java | 12 +++++++++++- idea/testData/completion/basic/SubpackageInFun.kt | 7 +++++++ 2 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 idea/testData/completion/basic/SubpackageInFun.kt diff --git a/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java b/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java index 7224322b46e..03fe53b1c8b 100644 --- a/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java +++ b/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java @@ -17,12 +17,16 @@ import org.jetbrains.jet.lang.descriptors.*; import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.DescriptorUtils; -import org.jetbrains.jet.lang.resolve.calls.inference.*; +import org.jetbrains.jet.lang.resolve.calls.inference.ConstraintResolutionListener; +import org.jetbrains.jet.lang.resolve.calls.inference.ConstraintSystem; +import org.jetbrains.jet.lang.resolve.calls.inference.ConstraintSystemImpl; +import org.jetbrains.jet.lang.resolve.calls.inference.ConstraintSystemSolution; import org.jetbrains.jet.lang.resolve.scopes.JetScope; import org.jetbrains.jet.lang.resolve.scopes.JetScopeUtils; import org.jetbrains.jet.lang.resolve.scopes.receivers.ExpressionReceiver; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import org.jetbrains.jet.lang.types.JetType; +import org.jetbrains.jet.lang.types.NamespaceType; import org.jetbrains.jet.lang.types.Variance; import org.jetbrains.jet.plugin.compiler.WholeProjectAnalyzerFacade; import org.jetbrains.jet.plugin.completion.handlers.JetFunctionInsertHandler; @@ -105,6 +109,7 @@ class JetSimpleNameReference extends JetPsiReference { @NotNull Iterable descriptors, @NotNull final JetScope scope ) { final Set descriptorsSet = Sets.newHashSet(descriptors); + descriptorsSet.removeAll( Collections2.filter(JetScopeUtils.getAllExtensions(scope), new Predicate() { @Override @@ -121,6 +126,11 @@ class JetSimpleNameReference extends JetPsiReference { @NotNull final JetScope externalScope, @NotNull final ReceiverDescriptor receiverDescriptor ) { + // It's impossible to add extension function for namespace + if (receiverDescriptor.getType() instanceof NamespaceType) { + return descriptors; + } + Set descriptorsSet = Sets.newHashSet(descriptors); descriptorsSet.addAll(Collections2.filter(JetScopeUtils.getAllExtensions(externalScope), diff --git a/idea/testData/completion/basic/SubpackageInFun.kt b/idea/testData/completion/basic/SubpackageInFun.kt new file mode 100644 index 00000000000..52a9b1022e7 --- /dev/null +++ b/idea/testData/completion/basic/SubpackageInFun.kt @@ -0,0 +1,7 @@ +namespace Test.MyTest + +fun test() { + Test. +} + +// EXIST: MyTest \ No newline at end of file