Revert "jdr: properly fetch supertype member names"
This reverts commit 9b13a308f8.
This commit is contained in:
-6
@@ -69,12 +69,6 @@ public abstract class JavaClassOrPackageScope extends JetScopeImpl {
|
||||
return semanticServices.getDescriptorResolver().resolveMethods(resolverScopeData, NamePredicate.exact(name));
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Collection<Name> getAllDescriptorNames() {
|
||||
return semanticServices.getDescriptorResolver().resolveMemberNames(resolverScopeData);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public Collection<DeclarationDescriptor> getAllDescriptors(@NotNull DescriptorPredicate predicate) {
|
||||
|
||||
-7
@@ -1518,13 +1518,6 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
||||
return functions;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public Collection<Name> resolveMemberNames(@NotNull ResolverScopeData scopeData) {
|
||||
getResolverScopeData(scopeData);
|
||||
// TODO: inner classes are not added
|
||||
return scopeData.namedMembersMap.keySet();
|
||||
}
|
||||
|
||||
private Collection<JetType> getSupertypes(ResolverScopeData scope) {
|
||||
if (scope instanceof ResolverBinaryClassData) {
|
||||
return ((ResolverBinaryClassData) scope).classDescriptor.getSupertypes();
|
||||
|
||||
+16
-31
@@ -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<Name, NamedMembers> namedMembersMap = new HashMap<Name, NamedMembers>();
|
||||
|
||||
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<Name, NamedMembers> 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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user