class containigDeclaration cannot be null

This commit is contained in:
Stepan Koltsov
2012-04-17 16:03:31 +04:00
parent c23fca1cad
commit 5e8b0d39db
3 changed files with 17 additions and 5 deletions
@@ -734,13 +734,25 @@ public class JavaDescriptorResolver {
return jetSignatureTypeParametersVisitor.r; return jetSignatureTypeParametersVisitor.r;
} }
private ClassOrNamespaceDescriptor resolveParentDescriptor(PsiClass psiClass) { @NotNull
private ClassOrNamespaceDescriptor resolveParentDescriptor(@NotNull PsiClass psiClass) {
FqName fqName = new FqName(psiClass.getQualifiedName());
PsiClass containingClass = psiClass.getContainingClass(); PsiClass containingClass = psiClass.getContainingClass();
if (containingClass != null) { if (containingClass != null) {
return resolveClass(new FqName(containingClass.getQualifiedName()), DescriptorSearchRule.INCLUDE_KOTLIN); FqName containerFqName = new FqName(containingClass.getQualifiedName());
ClassDescriptor clazz = resolveClass(containerFqName, DescriptorSearchRule.INCLUDE_KOTLIN);
if (clazz == null) {
throw new IllegalStateException("PsiClass not found by name " + containerFqName + ", required to be container declaration of " + fqName);
}
return clazz;
} }
return resolveNamespace(new FqName(psiClass.getQualifiedName()).parent(), DescriptorSearchRule.INCLUDE_KOTLIN); NamespaceDescriptor ns = resolveNamespace(fqName.parent(), DescriptorSearchRule.INCLUDE_KOTLIN);
if (ns == null) {
throw new IllegalStateException("cannot resolve namespace " + fqName.parent() + ", required to be container for " + fqName);
}
return ns;
} }
private List<TypeParameterDescriptorInitialization> makeUninitializedTypeParameters(@NotNull DeclarationDescriptor containingDeclaration, @NotNull PsiTypeParameter[] typeParameters) { private List<TypeParameterDescriptorInitialization> makeUninitializedTypeParameters(@NotNull DeclarationDescriptor containingDeclaration, @NotNull PsiTypeParameter[] typeParameters) {
@@ -60,7 +60,7 @@ public class MutableClassDescriptorLite extends MutableDeclarationDescriptor imp
private ClassReceiver implicitReceiver; private ClassReceiver implicitReceiver;
public MutableClassDescriptorLite(DeclarationDescriptor containingDeclaration, ClassKind kind) { public MutableClassDescriptorLite(@NotNull DeclarationDescriptor containingDeclaration, ClassKind kind) {
super(containingDeclaration); super(containingDeclaration);
this.kind = kind; this.kind = kind;
} }
@@ -25,7 +25,7 @@ public abstract class MutableDeclarationDescriptor implements DeclarationDescrip
private String name; private String name;
private final DeclarationDescriptor containingDeclaration; private final DeclarationDescriptor containingDeclaration;
public MutableDeclarationDescriptor(DeclarationDescriptor containingDeclaration) { public MutableDeclarationDescriptor(@NotNull DeclarationDescriptor containingDeclaration) {
this.containingDeclaration = containingDeclaration; this.containingDeclaration = containingDeclaration;
} }