Extract DescriptorUtils.getContainingModule()

This commit is contained in:
Alexander Udalov
2014-05-12 19:33:22 +04:00
parent a26ed665d9
commit b27b8bf8b2
2 changed files with 9 additions and 5 deletions
@@ -68,4 +68,4 @@ public fun JetType?.safeType(expression: JetExpression): JetType {
return ErrorUtils.createErrorType("Type for " + expression.getText())
}
private fun JetScope.getModule(): ModuleDescriptor = DescriptorUtils.getParentOfType(this.getContainingDeclaration(), javaClass<ModuleDescriptor>())!!
private fun JetScope.getModule(): ModuleDescriptor = DescriptorUtils.getContainingModule(this.getContainingDeclaration())
@@ -148,10 +148,7 @@ public class DescriptorUtils {
}
public static boolean areInSameModule(@NotNull DeclarationDescriptor first, @NotNull DeclarationDescriptor second) {
ModuleDescriptor parentModule = getParentOfType(first, ModuleDescriptor.class, false);
ModuleDescriptor fromModule = getParentOfType(second, ModuleDescriptor.class, false);
assert parentModule != null && fromModule != null;
return parentModule.equals(fromModule);
return getContainingModule(first).equals(getContainingModule(second));
}
@Nullable
@@ -194,6 +191,13 @@ public class DescriptorUtils {
return null;
}
@NotNull
public static ModuleDescriptor getContainingModule(@NotNull DeclarationDescriptor descriptor) {
ModuleDescriptor module = getParentOfType(descriptor, ModuleDescriptor.class, false);
assert module != null : "Descriptor without a containing module: " + descriptor;
return module;
}
public static boolean isAncestor(
@Nullable DeclarationDescriptor ancestor,
@NotNull DeclarationDescriptor declarationDescriptor,