diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassOrPackageScope.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassOrPackageScope.java index 7aee1bb6ac9..499f4519304 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassOrPackageScope.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaClassOrPackageScope.java @@ -69,12 +69,6 @@ public abstract class JavaClassOrPackageScope extends JetScopeImpl { return semanticServices.getDescriptorResolver().resolveMethods(resolverScopeData, NamePredicate.exact(name)); } - @NotNull - @Override - public Collection getAllDescriptorNames() { - return semanticServices.getDescriptorResolver().resolveMemberNames(resolverScopeData); - } - @NotNull @Override public Collection getAllDescriptors(@NotNull DescriptorPredicate predicate) { 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 af318d4b0e5..5bbdc73ba26 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 @@ -1518,13 +1518,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes return functions; } - @NotNull - public Collection resolveMemberNames(@NotNull ResolverScopeData scopeData) { - getResolverScopeData(scopeData); - // TODO: inner classes are not added - return scopeData.namedMembersMap.keySet(); - } - private Collection getSupertypes(ResolverScopeData scope) { if (scope instanceof ResolverBinaryClassData) { return ((ResolverBinaryClassData) scope).classDescriptor.getSupertypes(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolverHelper.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolverHelper.java index 475731923fc..a6a7fc17fb7 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolverHelper.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolverHelper.java @@ -20,12 +20,9 @@ import com.intellij.psi.PsiField; import com.intellij.psi.PsiMethod; import com.intellij.psi.PsiParameter; import org.jetbrains.annotations.NotNull; -import org.jetbrains.jet.lang.descriptors.ClassDescriptor; -import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor; import org.jetbrains.jet.lang.resolve.java.prop.PropertyNameUtils; import org.jetbrains.jet.lang.resolve.java.prop.PropertyParseResult; import org.jetbrains.jet.lang.resolve.name.Name; -import org.jetbrains.jet.lang.types.JetType; import java.util.Collections; import java.util.HashMap; @@ -39,28 +36,23 @@ class JavaDescriptorResolverHelper { } private static class Builder { - @NotNull - private final JavaDescriptorResolver.ResolverScopeData scopeData; - @NotNull private final PsiClassWrapper psiClass; private final boolean staticMembers; private final boolean kotlin; private Map namedMembersMap = new HashMap(); - private Builder(@NotNull JavaDescriptorResolver.ResolverScopeData scopeData) { - this.scopeData = scopeData; - this.psiClass = new PsiClassWrapper(scopeData.psiClass); - this.staticMembers = scopeData.staticMembers; - this.kotlin = scopeData.kotlin; + private Builder(PsiClassWrapper psiClass, boolean staticMembers, boolean kotlin) { + this.psiClass = psiClass; + this.staticMembers = staticMembers; + this.kotlin = kotlin; } public void run() { - createGroupsForMembersFromSupertypes(); processFields(); processMethods(); } - + private NamedMembers getNamedMembers(Name name) { NamedMembers r = namedMembersMap.get(name); if (r == null) { @@ -70,23 +62,6 @@ class JavaDescriptorResolverHelper { } return r; } - - private void createGroupsForMembersFromSupertypes() { - if (scopeData.classOrNamespaceDescriptor instanceof ClassDescriptor) { - ClassDescriptor clazz = (ClassDescriptor) scopeData.classOrNamespaceDescriptor; - for (JetType supertype : clazz.getTypeConstructor().getSupertypes()) { - for (Name name : supertype.getMemberScope().getAllDescriptorNames()) { - getNamedMembers(name); - } - } - } - else if (scopeData.classOrNamespaceDescriptor instanceof NamespaceDescriptor) { - - } - else { - throw new IllegalStateException("unknown descriptor: " + scopeData.classOrNamespaceDescriptor); - } - } private boolean includeMember(PsiMemberWrapper member) { if (member.isStatic() != staticMembers) { @@ -124,6 +99,16 @@ class JavaDescriptorResolverHelper { private void processMethods() { + for (PsiMethod method : psiClass.getPsiClass().getAllMethods()) { + getNamedMembers(Name.identifier(method.getName())); + + PropertyParseResult propertyParseResult = PropertyNameUtils.parseMethodToProperty(method.getName()); + if (propertyParseResult != null) { + getNamedMembers(Name.identifier(propertyParseResult.getPropertyName())); + } + } + + for (PsiMethod method0 : psiClass.getPsiClass().getMethods()) { PsiMethodWrapper method = new PsiMethodWrapper(method0); @@ -231,7 +216,7 @@ class JavaDescriptorResolverHelper { @NotNull static Map getNamedMembers(@NotNull JavaDescriptorResolver.ResolverScopeData resolverScopeData) { if (resolverScopeData.psiClass != null) { - Builder builder = new Builder(resolverScopeData); + Builder builder = new Builder(new PsiClassWrapper(resolverScopeData.psiClass), resolverScopeData.staticMembers, resolverScopeData.kotlin); builder.run(); return builder.namedMembersMap; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScope.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScope.java index 37dfc1670af..1607af7575f 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScope.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScope.java @@ -88,9 +88,6 @@ public interface JetScope { Collection getAllDescriptors(); - @NotNull - Collection getAllDescriptorNames(); - /** * @return EFFECTIVE implicit receiver at this point (may be corresponding to an outer scope) */ diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScopeBase.java b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScopeBase.java index 07d6daaa0ba..42130096fc9 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScopeBase.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/resolve/scopes/JetScopeBase.java @@ -16,13 +16,9 @@ package org.jetbrains.jet.lang.resolve.scopes; -import com.google.common.collect.Sets; -import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.descriptors.DeclarationDescriptor; -import org.jetbrains.jet.lang.resolve.name.Name; import java.util.Collection; -import java.util.Set; /** * @author Stepan Koltsov @@ -34,14 +30,4 @@ public abstract class JetScopeBase implements JetScope { return getAllDescriptors(DescriptorPredicate.all()); } - @NotNull - @Override - public Collection getAllDescriptorNames() { - // dummy implementation - Set r = Sets.newHashSet(); - for (DeclarationDescriptor descriptor : getAllDescriptors()) { - r.add(descriptor.getName()); - } - return r; - } }