optimize DescriptorUtils.getContainingModuleOrNull() by removing duplicate parent traversal and Class.isInstance() checks
This commit is contained in:
@@ -191,13 +191,14 @@ public class DescriptorUtils {
|
|||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public static ModuleDescriptor getContainingModuleOrNull(@NotNull DeclarationDescriptor descriptor) {
|
public static ModuleDescriptor getContainingModuleOrNull(@NotNull DeclarationDescriptor descriptor) {
|
||||||
ModuleDescriptor moduleDescriptor = getParentOfType(descriptor, ModuleDescriptor.class, false);
|
while (descriptor != null) {
|
||||||
if (moduleDescriptor != null) {
|
if (descriptor instanceof ModuleDescriptor) {
|
||||||
return moduleDescriptor;
|
return (ModuleDescriptor) descriptor;
|
||||||
}
|
}
|
||||||
PackageViewDescriptor packageViewDescriptor = getParentOfType(descriptor, PackageViewDescriptor.class, false);
|
if (descriptor instanceof PackageViewDescriptor) {
|
||||||
if (packageViewDescriptor != null) {
|
return ((PackageViewDescriptor) descriptor).getModule();
|
||||||
return packageViewDescriptor.getModule();
|
}
|
||||||
|
descriptor = descriptor.getContainingDeclaration();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user