Locality criterion fixed for Value parameters

This commit is contained in:
Andrey Breslav
2011-09-18 18:20:13 +04:00
parent 8d42f4b267
commit e9ca08e32f
2 changed files with 4 additions and 12 deletions
@@ -6,6 +6,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor;
import org.jetbrains.jet.lang.descriptors.CallableDescriptor;
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.resolve.scopes.receivers.ReceiverDescriptor;
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)
*/
public static boolean isLocal(DeclarationDescriptor containerOfTheCurrentLocality, DeclarationDescriptor candidate) {
if (candidate instanceof ValueParameterDescriptor) {
return true;
}
DeclarationDescriptor parent = candidate.getContainingDeclaration();
if (!(parent instanceof FunctionDescriptor)) {
return false;
@@ -38,8 +38,6 @@ public class WritableScopeImpl extends WritableScopeWithImports {
@Nullable
private ImplicitReceiverDescriptor implicitReceiver;
private List<VariableDescriptor> variableDescriptors;
public WritableScopeImpl(@NotNull JetScope scope, @NotNull DeclarationDescriptor owner, @NotNull RedeclarationHandler redeclarationHandler) {
super(scope, redeclarationHandler);
this.ownerDeclarationDescriptor = owner;
@@ -127,14 +125,6 @@ public class WritableScopeImpl extends WritableScopeWithImports {
return variableClassOrNamespaceDescriptors;
}
@NotNull
private List<VariableDescriptor> getVariableDescriptors() {
if (variableDescriptors == null) {
variableDescriptors = Lists.newArrayList();
}
return variableDescriptors;
}
@Override
public void addVariableDescriptor(@NotNull VariableDescriptor variableDescriptor) {
Map<String, DeclarationDescriptor> variableClassOrNamespaceDescriptors = getVariableClassOrNamespaceDescriptors();
@@ -145,8 +135,6 @@ public class WritableScopeImpl extends WritableScopeWithImports {
// TODO : Should this always happen?
variableClassOrNamespaceDescriptors.put(variableDescriptor.getName(), variableDescriptor);
allDescriptors.add(variableDescriptor);
getVariableDescriptors().add(variableDescriptor);
}
@Override