提交 31b536a8 编写于 作者: N Nikolay Krasko

KT-822: Assertion during completion of the subpackage in function

上级 1d4e12ab
...@@ -17,12 +17,16 @@ import org.jetbrains.jet.lang.descriptors.*; ...@@ -17,12 +17,16 @@ import org.jetbrains.jet.lang.descriptors.*;
import org.jetbrains.jet.lang.psi.*; import org.jetbrains.jet.lang.psi.*;
import org.jetbrains.jet.lang.resolve.BindingContext; import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.resolve.DescriptorUtils; 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.JetScope;
import org.jetbrains.jet.lang.resolve.scopes.JetScopeUtils; 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.ExpressionReceiver;
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
import org.jetbrains.jet.lang.types.JetType; 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.lang.types.Variance;
import org.jetbrains.jet.plugin.compiler.WholeProjectAnalyzerFacade; import org.jetbrains.jet.plugin.compiler.WholeProjectAnalyzerFacade;
import org.jetbrains.jet.plugin.completion.handlers.JetFunctionInsertHandler; import org.jetbrains.jet.plugin.completion.handlers.JetFunctionInsertHandler;
...@@ -105,6 +109,7 @@ class JetSimpleNameReference extends JetPsiReference { ...@@ -105,6 +109,7 @@ class JetSimpleNameReference extends JetPsiReference {
@NotNull Iterable<DeclarationDescriptor> descriptors, @NotNull final JetScope scope @NotNull Iterable<DeclarationDescriptor> descriptors, @NotNull final JetScope scope
) { ) {
final Set<DeclarationDescriptor> descriptorsSet = Sets.newHashSet(descriptors); final Set<DeclarationDescriptor> descriptorsSet = Sets.newHashSet(descriptors);
descriptorsSet.removeAll( descriptorsSet.removeAll(
Collections2.filter(JetScopeUtils.getAllExtensions(scope), new Predicate<CallableDescriptor>() { Collections2.filter(JetScopeUtils.getAllExtensions(scope), new Predicate<CallableDescriptor>() {
@Override @Override
...@@ -121,6 +126,11 @@ class JetSimpleNameReference extends JetPsiReference { ...@@ -121,6 +126,11 @@ class JetSimpleNameReference extends JetPsiReference {
@NotNull final JetScope externalScope, @NotNull final JetScope externalScope,
@NotNull final ReceiverDescriptor receiverDescriptor @NotNull final ReceiverDescriptor receiverDescriptor
) { ) {
// It's impossible to add extension function for namespace
if (receiverDescriptor.getType() instanceof NamespaceType) {
return descriptors;
}
Set<DeclarationDescriptor> descriptorsSet = Sets.newHashSet(descriptors); Set<DeclarationDescriptor> descriptorsSet = Sets.newHashSet(descriptors);
descriptorsSet.addAll(Collections2.filter(JetScopeUtils.getAllExtensions(externalScope), descriptorsSet.addAll(Collections2.filter(JetScopeUtils.getAllExtensions(externalScope),
......
namespace Test.MyTest
fun test() {
Test.<caret>
}
// EXIST: MyTest
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册