Locality criterion fixed for Value parameters
This commit is contained in:
@@ -6,6 +6,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
|
import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||||
|
import org.jetbrains.jet.lang.descriptors.ValueParameterDescriptor;
|
||||||
import org.jetbrains.jet.lang.psi.Call;
|
import org.jetbrains.jet.lang.psi.Call;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
||||||
@@ -45,6 +46,9 @@ import java.util.List;
|
|||||||
* local extension prevail over members (and members prevail over all non-local extensions)
|
* local extension prevail over members (and members prevail over all non-local extensions)
|
||||||
*/
|
*/
|
||||||
public static boolean isLocal(DeclarationDescriptor containerOfTheCurrentLocality, DeclarationDescriptor candidate) {
|
public static boolean isLocal(DeclarationDescriptor containerOfTheCurrentLocality, DeclarationDescriptor candidate) {
|
||||||
|
if (candidate instanceof ValueParameterDescriptor) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
DeclarationDescriptor parent = candidate.getContainingDeclaration();
|
DeclarationDescriptor parent = candidate.getContainingDeclaration();
|
||||||
if (!(parent instanceof FunctionDescriptor)) {
|
if (!(parent instanceof FunctionDescriptor)) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@@ -38,8 +38,6 @@ public class WritableScopeImpl extends WritableScopeWithImports {
|
|||||||
@Nullable
|
@Nullable
|
||||||
private ImplicitReceiverDescriptor implicitReceiver;
|
private ImplicitReceiverDescriptor implicitReceiver;
|
||||||
|
|
||||||
private List<VariableDescriptor> variableDescriptors;
|
|
||||||
|
|
||||||
public WritableScopeImpl(@NotNull JetScope scope, @NotNull DeclarationDescriptor owner, @NotNull RedeclarationHandler redeclarationHandler) {
|
public WritableScopeImpl(@NotNull JetScope scope, @NotNull DeclarationDescriptor owner, @NotNull RedeclarationHandler redeclarationHandler) {
|
||||||
super(scope, redeclarationHandler);
|
super(scope, redeclarationHandler);
|
||||||
this.ownerDeclarationDescriptor = owner;
|
this.ownerDeclarationDescriptor = owner;
|
||||||
@@ -127,14 +125,6 @@ public class WritableScopeImpl extends WritableScopeWithImports {
|
|||||||
return variableClassOrNamespaceDescriptors;
|
return variableClassOrNamespaceDescriptors;
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
|
||||||
private List<VariableDescriptor> getVariableDescriptors() {
|
|
||||||
if (variableDescriptors == null) {
|
|
||||||
variableDescriptors = Lists.newArrayList();
|
|
||||||
}
|
|
||||||
return variableDescriptors;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addVariableDescriptor(@NotNull VariableDescriptor variableDescriptor) {
|
public void addVariableDescriptor(@NotNull VariableDescriptor variableDescriptor) {
|
||||||
Map<String, DeclarationDescriptor> variableClassOrNamespaceDescriptors = getVariableClassOrNamespaceDescriptors();
|
Map<String, DeclarationDescriptor> variableClassOrNamespaceDescriptors = getVariableClassOrNamespaceDescriptors();
|
||||||
@@ -145,8 +135,6 @@ public class WritableScopeImpl extends WritableScopeWithImports {
|
|||||||
// TODO : Should this always happen?
|
// TODO : Should this always happen?
|
||||||
variableClassOrNamespaceDescriptors.put(variableDescriptor.getName(), variableDescriptor);
|
variableClassOrNamespaceDescriptors.put(variableDescriptor.getName(), variableDescriptor);
|
||||||
allDescriptors.add(variableDescriptor);
|
allDescriptors.add(variableDescriptor);
|
||||||
|
|
||||||
getVariableDescriptors().add(variableDescriptor);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user