diff --git a/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java b/idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java index 7224322b46ebbdc4da6852521c665b9b4ad72ac6..03fe53b1c8b86d0edae73741e6df92be88021dc9 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 0000000000000000000000000000000000000000..52a9b1022e7b511facc13a8979ef47c63a9eb9f4 --- /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