fix PackageScope.getAllDescriptors
http://youtrack.jetbrains.com/issue/KT-1553
This commit is contained in:
+3
@@ -80,6 +80,9 @@ public class JavaClassMembersScope extends JavaClassOrPackageScope {
|
||||
return Collections.emptySet();
|
||||
}
|
||||
|
||||
/**
|
||||
* @see JavaPackageScope#getAllDescriptors()
|
||||
*/
|
||||
@NotNull
|
||||
@Override
|
||||
public Collection<DeclarationDescriptor> getAllDescriptors() {
|
||||
|
||||
+1
-1
@@ -1530,7 +1530,7 @@ public class JavaDescriptorResolver {
|
||||
return annotation;
|
||||
}
|
||||
|
||||
public List<FunctionDescriptor> resolveMethods(PsiClass psiClass, ClassOrNamespaceDescriptor containingDeclaration) {
|
||||
public List<FunctionDescriptor> resolveMethods(@NotNull PsiClass psiClass, @NotNull ClassOrNamespaceDescriptor containingDeclaration) {
|
||||
ResolverScopeData scopeData = getResolverScopeData(containingDeclaration, new PsiClassWrapper(psiClass));
|
||||
|
||||
TypeSubstitutor substitutorForGenericSupertypes = typeSubstitutorForGenericSupertypes(scopeData);
|
||||
|
||||
+10
-14
@@ -87,12 +87,21 @@ public class JavaPackageScope extends JavaClassOrPackageScope {
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @see JavaClassMembersScope#getAllDescriptors()
|
||||
*/
|
||||
@NotNull
|
||||
@Override
|
||||
public Collection<DeclarationDescriptor> getAllDescriptors() {
|
||||
if (allDescriptors == null) {
|
||||
allDescriptors = Sets.newHashSet();
|
||||
|
||||
if (psiClass != null) {
|
||||
allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveMethods(psiClass, descriptor));
|
||||
|
||||
allDescriptors.addAll(semanticServices.getDescriptorResolver().resolveFieldGroup(descriptor, psiClass, staticMembers()));
|
||||
}
|
||||
|
||||
final PsiPackage javaPackage = semanticServices.getDescriptorResolver().findPackage(packageFQN);
|
||||
|
||||
if (javaPackage != null) {
|
||||
@@ -118,20 +127,7 @@ public class JavaPackageScope extends JavaClassOrPackageScope {
|
||||
|
||||
// TODO: Temp hack for collection function descriptors from java
|
||||
if (JvmAbi.PACKAGE_CLASS.equals(psiClass.getName())) {
|
||||
HashSet<String> methodNames = new HashSet<String>();
|
||||
for (PsiMethod psiMethod : psiClass.getMethods()) {
|
||||
methodNames.add(psiMethod.getName());
|
||||
}
|
||||
|
||||
for (String methodName : methodNames) {
|
||||
try {
|
||||
allDescriptors.addAll(getFunctions(methodName));
|
||||
} catch (ProcessCanceledException cancelException) {
|
||||
throw cancelException;
|
||||
} catch (RuntimeException ex) {
|
||||
LOG.error(ex);
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (psiClass.hasModifierProperty(PsiModifier.PUBLIC)) {
|
||||
|
||||
Reference in New Issue
Block a user