提交 4443f912 编写于 作者: S Stepan Koltsov

fix PackageScope.getAllDescriptors

http://youtrack.jetbrains.com/issue/KT-1553
上级 0c2b91aa
......@@ -80,6 +80,9 @@ public class JavaClassMembersScope extends JavaClassOrPackageScope {
return Collections.emptySet();
}
/**
* @see JavaPackageScope#getAllDescriptors()
*/
@NotNull
@Override
public Collection<DeclarationDescriptor> getAllDescriptors() {
......
......@@ -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);
......
......@@ -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)) {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册