diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/MembersByNameCache.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/MembersByNameCache.java index c66aa3b34b2..243706c3b52 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/MembersByNameCache.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/MembersByNameCache.java @@ -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.name.Name; +import java.util.Collection; import java.util.HashMap; import java.util.Map; @@ -39,15 +40,16 @@ public final class MembersByNameCache { return namedMembersMap.get(name); } - public Iterable> entrySet() { - return namedMembersMap.entrySet(); + @NotNull + public Collection allMembers() { + return namedMembersMap.values(); } @NotNull private NamedMembers getOrCreateEmpty(@NotNull Name name) { NamedMembers r = namedMembersMap.get(name); if (r == null) { - r = new NamedMembers(); + r = new NamedMembers(name); namedMembersMap.put(name, r); } return r; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/NamedMembers.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/NamedMembers.java index c25dd01fa6e..9daaf24cbbf 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/NamedMembers.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/NamedMembers.java @@ -22,6 +22,7 @@ import org.jetbrains.annotations.Nullable; import org.jetbrains.jet.lang.descriptors.FunctionDescriptor; import org.jetbrains.jet.lang.descriptors.VariableDescriptor; import org.jetbrains.jet.lang.resolve.java.wrapper.PsiMethodWrapper; +import org.jetbrains.jet.lang.resolve.name.Name; import java.util.List; import java.util.Set; @@ -31,6 +32,13 @@ import java.util.Set; */ public class NamedMembers { + public NamedMembers(@NotNull Name name) { + this.name = name; + } + + @NotNull + private final Name name; + @NotNull private final List methods = Lists.newArrayList(); @@ -55,6 +63,11 @@ public class NamedMembers { return methods; } + @NotNull + public Name getName() { + return name; + } + @NotNull public List getPropertyAccessors() { return propertyAccessors; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java index ea5b28a4d7f..4a30e0570cb 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaFunctionResolver.java @@ -265,7 +265,7 @@ public final class JavaFunctionResolver { } } - public static Set getFunctionsFromSupertypes( + private static Set getFunctionsFromSupertypes( ResolverScopeData scopeData, Name methodName ) { @@ -281,14 +281,12 @@ public final class JavaFunctionResolver { public List resolveMethods(@NotNull ResolverScopeData scopeData) { List functions = new ArrayList(); - for (Map.Entry entry : scopeData.getMembersCache().entrySet()) { - Name methodName = entry.getKey(); - NamedMembers namedMembers = entry.getValue(); + for (NamedMembers member : scopeData.getMembersCache().allMembers()) { PsiClass psiClass = scopeData.getPsiClass(); assert psiClass != null; resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), psiClass, - namedMembers, methodName, scopeData); - functions.addAll(namedMembers.getFunctionDescriptors()); + member, member.getName(), scopeData); + functions.addAll(member.getFunctionDescriptors()); } return functions; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPropertiesResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPropertiesResolver.java index fbcd11c6986..37a2fb49391 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPropertiesResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/JavaPropertiesResolver.java @@ -108,14 +108,11 @@ public final class JavaPropertiesResolver { Set descriptors = Sets.newHashSet(); MembersByNameCache membersForProperties = scopeData.getMembersCache(); - for (Map.Entry entry : membersForProperties.entrySet()) { - NamedMembers namedMembers = entry.getValue(); - Name propertyName = entry.getKey(); - + for (NamedMembers members : membersForProperties.allMembers()) { resolveNamedGroupProperties( - scopeData.getClassOrNamespaceDescriptor(), scopeData, namedMembers, propertyName, + scopeData.getClassOrNamespaceDescriptor(), scopeData, members, members.getName(), "class or namespace " + psiClass.getQualifiedName()); - descriptors.addAll(namedMembers.getPropertyDescriptors()); + descriptors.addAll(members.getPropertyDescriptors()); } return descriptors;