Add Name parameter to NamedMembers class
Rename: MembersByNameCache#entrySet() -> AllMembers(), logic simplified
This commit is contained in:
+5
-3
@@ -26,6 +26,7 @@ import org.jetbrains.jet.lang.resolve.java.prop.PropertyParseResult;
|
|||||||
import org.jetbrains.jet.lang.resolve.java.wrapper.*;
|
import org.jetbrains.jet.lang.resolve.java.wrapper.*;
|
||||||
import org.jetbrains.jet.lang.resolve.name.Name;
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@@ -39,15 +40,16 @@ public final class MembersByNameCache {
|
|||||||
return namedMembersMap.get(name);
|
return namedMembersMap.get(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Iterable<? extends Map.Entry<Name, NamedMembers>> entrySet() {
|
@NotNull
|
||||||
return namedMembersMap.entrySet();
|
public Collection<NamedMembers> allMembers() {
|
||||||
|
return namedMembersMap.values();
|
||||||
}
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private NamedMembers getOrCreateEmpty(@NotNull Name name) {
|
private NamedMembers getOrCreateEmpty(@NotNull Name name) {
|
||||||
NamedMembers r = namedMembersMap.get(name);
|
NamedMembers r = namedMembersMap.get(name);
|
||||||
if (r == null) {
|
if (r == null) {
|
||||||
r = new NamedMembers();
|
r = new NamedMembers(name);
|
||||||
namedMembersMap.put(name, r);
|
namedMembersMap.put(name, r);
|
||||||
}
|
}
|
||||||
return r;
|
return r;
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import org.jetbrains.annotations.Nullable;
|
|||||||
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
import org.jetbrains.jet.lang.descriptors.FunctionDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.VariableDescriptor;
|
import org.jetbrains.jet.lang.descriptors.VariableDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
|
import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper;
|
||||||
|
import org.jetbrains.jet.lang.resolve.name.Name;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
@@ -31,6 +32,13 @@ import java.util.Set;
|
|||||||
*/
|
*/
|
||||||
public class NamedMembers {
|
public class NamedMembers {
|
||||||
|
|
||||||
|
public NamedMembers(@NotNull Name name) {
|
||||||
|
this.name = name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private final Name name;
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private final List<PsiMethodWrapper> methods = Lists.newArrayList();
|
private final List<PsiMethodWrapper> methods = Lists.newArrayList();
|
||||||
|
|
||||||
@@ -55,6 +63,11 @@ public class NamedMembers {
|
|||||||
return methods;
|
return methods;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Name getName() {
|
||||||
|
return name;
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
public List<PropertyAccessorData> getPropertyAccessors() {
|
public List<PropertyAccessorData> getPropertyAccessors() {
|
||||||
return propertyAccessors;
|
return propertyAccessors;
|
||||||
|
|||||||
+4
-6
@@ -265,7 +265,7 @@ public final class JavaFunctionResolver {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Set<SimpleFunctionDescriptor> getFunctionsFromSupertypes(
|
private static Set<SimpleFunctionDescriptor> getFunctionsFromSupertypes(
|
||||||
ResolverScopeData scopeData,
|
ResolverScopeData scopeData,
|
||||||
Name methodName
|
Name methodName
|
||||||
) {
|
) {
|
||||||
@@ -281,14 +281,12 @@ public final class JavaFunctionResolver {
|
|||||||
public List<FunctionDescriptor> resolveMethods(@NotNull ResolverScopeData scopeData) {
|
public List<FunctionDescriptor> resolveMethods(@NotNull ResolverScopeData scopeData) {
|
||||||
List<FunctionDescriptor> functions = new ArrayList<FunctionDescriptor>();
|
List<FunctionDescriptor> functions = new ArrayList<FunctionDescriptor>();
|
||||||
|
|
||||||
for (Map.Entry<Name, NamedMembers> entry : scopeData.getMembersCache().entrySet()) {
|
for (NamedMembers member : scopeData.getMembersCache().allMembers()) {
|
||||||
Name methodName = entry.getKey();
|
|
||||||
NamedMembers namedMembers = entry.getValue();
|
|
||||||
PsiClass psiClass = scopeData.getPsiClass();
|
PsiClass psiClass = scopeData.getPsiClass();
|
||||||
assert psiClass != null;
|
assert psiClass != null;
|
||||||
resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), psiClass,
|
resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), psiClass,
|
||||||
namedMembers, methodName, scopeData);
|
member, member.getName(), scopeData);
|
||||||
functions.addAll(namedMembers.getFunctionDescriptors());
|
functions.addAll(member.getFunctionDescriptors());
|
||||||
}
|
}
|
||||||
|
|
||||||
return functions;
|
return functions;
|
||||||
|
|||||||
+3
-6
@@ -108,14 +108,11 @@ public final class JavaPropertiesResolver {
|
|||||||
|
|
||||||
Set<VariableDescriptor> descriptors = Sets.newHashSet();
|
Set<VariableDescriptor> descriptors = Sets.newHashSet();
|
||||||
MembersByNameCache membersForProperties = scopeData.getMembersCache();
|
MembersByNameCache membersForProperties = scopeData.getMembersCache();
|
||||||
for (Map.Entry<Name, NamedMembers> entry : membersForProperties.entrySet()) {
|
for (NamedMembers members : membersForProperties.allMembers()) {
|
||||||
NamedMembers namedMembers = entry.getValue();
|
|
||||||
Name propertyName = entry.getKey();
|
|
||||||
|
|
||||||
resolveNamedGroupProperties(
|
resolveNamedGroupProperties(
|
||||||
scopeData.getClassOrNamespaceDescriptor(), scopeData, namedMembers, propertyName,
|
scopeData.getClassOrNamespaceDescriptor(), scopeData, members, members.getName(),
|
||||||
"class or namespace " + psiClass.getQualifiedName());
|
"class or namespace " + psiClass.getQualifiedName());
|
||||||
descriptors.addAll(namedMembers.getPropertyDescriptors());
|
descriptors.addAll(members.getPropertyDescriptors());
|
||||||
}
|
}
|
||||||
|
|
||||||
return descriptors;
|
return descriptors;
|
||||||
|
|||||||
Reference in New Issue
Block a user