diff --git a/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java b/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java index ed944f07f3f..d0e00fc178e 100644 --- a/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java +++ b/core/descriptors/src/org/jetbrains/kotlin/resolve/DescriptorUtils.java @@ -191,13 +191,14 @@ public class DescriptorUtils { @Nullable public static ModuleDescriptor getContainingModuleOrNull(@NotNull DeclarationDescriptor descriptor) { - ModuleDescriptor moduleDescriptor = getParentOfType(descriptor, ModuleDescriptor.class, false); - if (moduleDescriptor != null) { - return moduleDescriptor; - } - PackageViewDescriptor packageViewDescriptor = getParentOfType(descriptor, PackageViewDescriptor.class, false); - if (packageViewDescriptor != null) { - return packageViewDescriptor.getModule(); + while (descriptor != null) { + if (descriptor instanceof ModuleDescriptor) { + return (ModuleDescriptor) descriptor; + } + if (descriptor instanceof PackageViewDescriptor) { + return ((PackageViewDescriptor) descriptor).getModule(); + } + descriptor = descriptor.getContainingDeclaration(); } return null; }