Not ignoring other properties in scope.
First one (almost randomly) was chosen instead of ambiguity.
This commit is contained in:
@@ -195,16 +195,6 @@ public class DescriptorUtils {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static VariableDescriptor filterNonExtensionProperty(Collection<VariableDescriptor> variables) {
|
||||
for (VariableDescriptor variable : variables) {
|
||||
if (variable.getReceiverParameter() == null) {
|
||||
return variable;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public static JetType getFunctionExpectedReturnType(@NotNull FunctionDescriptor descriptor, @NotNull JetElement function) {
|
||||
JetType expectedType;
|
||||
|
||||
+11
-6
@@ -20,7 +20,6 @@ import com.google.common.collect.Lists;
|
||||
import com.google.common.collect.Sets;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.descriptors.*;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||
import org.jetbrains.jet.lang.types.ErrorUtils;
|
||||
@@ -84,12 +83,18 @@ public class CallableDescriptorCollectors {
|
||||
@NotNull
|
||||
@Override
|
||||
public Collection<VariableDescriptor> getNonExtensionsByName(JetScope scope, Name name) {
|
||||
VariableDescriptor descriptor = scope.getLocalVariable(name);
|
||||
if (descriptor == null) {
|
||||
descriptor = DescriptorUtils.filterNonExtensionProperty(scope.getProperties(name));
|
||||
VariableDescriptor localVariable = scope.getLocalVariable(name);
|
||||
if (localVariable != null) {
|
||||
return Collections.singleton(localVariable);
|
||||
}
|
||||
if (descriptor == null) return Collections.emptyList();
|
||||
return Collections.singleton(descriptor);
|
||||
|
||||
LinkedHashSet<VariableDescriptor> variables = Sets.newLinkedHashSet();
|
||||
for (VariableDescriptor variable : scope.getProperties(name)) {
|
||||
if (variable.getReceiverParameter() == null) {
|
||||
variables.add(variable);
|
||||
}
|
||||
}
|
||||
return variables;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
// FILE: a.kt
|
||||
package a
|
||||
|
||||
val v = 1
|
||||
fun f() = 1
|
||||
|
||||
// FILE: b.kt
|
||||
package b
|
||||
|
||||
val v = 1
|
||||
fun f() = 1
|
||||
|
||||
// FILE: main.kt
|
||||
import a.*
|
||||
import b.*
|
||||
|
||||
val vv = <!OVERLOAD_RESOLUTION_AMBIGUITY!>v<!>
|
||||
val ff = <!OVERLOAD_RESOLUTION_AMBIGUITY!>f<!>()
|
||||
@@ -5034,6 +5034,11 @@ public class JetDiagnosticsTestGenerated extends AbstractDiagnosticsTestWithEage
|
||||
doTest("compiler/testData/diagnostics/tests/scopes/AmbiguityBetweenRootAndPackage.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("AmbiguousNonExtensions.kt")
|
||||
public void testAmbiguousNonExtensions() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/scopes/AmbiguousNonExtensions.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("ImportFromCurrentWithDifferentName.kt")
|
||||
public void testImportFromCurrentWithDifferentName() throws Exception {
|
||||
doTest("compiler/testData/diagnostics/tests/scopes/ImportFromCurrentWithDifferentName.kt");
|
||||
|
||||
Reference in New Issue
Block a user