diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorPropertiesResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorPropertiesResolver.java index 925baaf57a7..8943b9cb600 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorPropertiesResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorPropertiesResolver.java @@ -79,15 +79,11 @@ public final class JavaDescriptorPropertiesResolver { ) { JavaDescriptorResolver.getResolverScopeData(scopeData); - if (namedMembers.propertyDescriptors != null) { + if (namedMembers.getPropertyDescriptors() != null) { return; } - if (namedMembers.propertyAccessors == null) { - namedMembers.propertyAccessors = Collections.emptyList(); - } - - Map map = collectGroupingValuesFromAccessors(namedMembers.propertyAccessors); + Map map = collectGroupingValuesFromAccessors(namedMembers.getPropertyAccessors()); Set propertiesFromCurrent = new HashSet(1); @@ -263,7 +259,7 @@ public final class JavaDescriptorPropertiesResolver { OverrideResolver.resolveUnknownVisibilities(properties, trace); properties.addAll(propertiesFromCurrent); - namedMembers.propertyDescriptors = Sets.newHashSet(properties); + namedMembers.setPropertyDescriptors(Sets.newHashSet(properties)); } private List resolvePropertyTypeParameters( diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index ff689c8148e..5414ebc3538 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -941,7 +941,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes javaDescriptorPropertiesResolver.resolveNamedGroupProperties(scopeData.getClassOrNamespaceDescriptor(), scopeData, namedMembers, fieldName, "class or namespace " + qualifiedName); - return namedMembers.propertyDescriptors; + return namedMembers.getPropertyDescriptors(); } @NotNull @@ -960,7 +960,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes javaDescriptorPropertiesResolver.resolveNamedGroupProperties( scopeData.getClassOrNamespaceDescriptor(), scopeData, namedMembers, propertyName, "class or namespace " + psiClass.getQualifiedName()); - descriptors.addAll(namedMembers.propertyDescriptors); + descriptors.addAll(namedMembers.getPropertyDescriptors()); } return descriptors; @@ -970,14 +970,14 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes @NotNull ClassOrNamespaceDescriptor owner, PsiClass psiClass, NamedMembers namedMembers, Name methodName, ResolverScopeData scopeData ) { - if (namedMembers.functionDescriptors != null) { + if (namedMembers.getFunctionDescriptors() != null) { return; } final Set functions = new HashSet(); Set functionsFromCurrent = Sets.newHashSet(); - for (PsiMethodWrapper method : namedMembers.methods) { + for (PsiMethodWrapper method : namedMembers.getMethods()) { SimpleFunctionDescriptor function = resolveMethodToFunctionDescriptor(psiClass, method, scopeData); if (function != null) { functionsFromCurrent.add(function); @@ -1014,7 +1014,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes } } - namedMembers.functionDescriptors = functions; + namedMembers.setFunctionDescriptors(functions); } private static Set getFunctionsFromSupertypes(ResolverScopeData scopeData, Name methodName) { @@ -1041,11 +1041,11 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes Map namedMembersMap = scopeData.getNamedMembersMap(); NamedMembers namedMembers = namedMembersMap.get(methodName); - if (namedMembers != null && namedMembers.methods != null) { + if (namedMembers != null) { resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), scopeData.getPsiClass(), namedMembers, methodName, scopeData); - return namedMembers.functionDescriptors; + return namedMembers.getFunctionDescriptors(); } else { return Collections.emptySet(); @@ -1408,7 +1408,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes NamedMembers namedMembers = entry.getValue(); resolveNamedGroupFunctions(scopeData.getClassOrNamespaceDescriptor(), scopeData.getPsiClass(), namedMembers, methodName, scopeData); - functions.addAll(namedMembers.functionDescriptors); + functions.addAll(namedMembers.getFunctionDescriptors()); } return functions; 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 1b326bdea31..c25dd01fa6e 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 @@ -16,36 +16,65 @@ package org.jetbrains.jet.lang.resolve.java; +import com.google.common.collect.Lists; +import org.jetbrains.annotations.NotNull; 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 java.util.ArrayList; import java.util.List; import java.util.Set; /** * @author Stepan Koltsov */ -class NamedMembers { - List methods = new ArrayList(0); +public class NamedMembers { - @Nullable - List propertyAccessors; + @NotNull + private final List methods = Lists.newArrayList(); + + @NotNull + private final List propertyAccessors = Lists.newArrayList(); + + private Set propertyDescriptors; - Set propertyDescriptors; /** Including from supertypes */ - Set functionDescriptors; + private Set functionDescriptors; - void addMethod(PsiMethodWrapper method) { + void addMethod(@NotNull PsiMethodWrapper method) { methods.add(method); } - - void addPropertyAccessor(PropertyAccessorData propertyAccessorData) { - if (propertyAccessors == null) { - propertyAccessors = new ArrayList(); - } + + void addPropertyAccessor(@NotNull PropertyAccessorData propertyAccessorData) { propertyAccessors.add(propertyAccessorData); } + + @NotNull + public List getMethods() { + return methods; + } + + @NotNull + public List getPropertyAccessors() { + return propertyAccessors; + } + + @Nullable + public Set getPropertyDescriptors() { + return propertyDescriptors; + } + + public void setPropertyDescriptors(@NotNull Set propertyDescriptors) { + this.propertyDescriptors = propertyDescriptors; + } + + @Nullable + public Set getFunctionDescriptors() { + return functionDescriptors; + } + + public void setFunctionDescriptors(@NotNull Set functionDescriptors) { + this.functionDescriptors = functionDescriptors; + } }