class containigDeclaration cannot be null
This commit is contained in:
+15
-3
@@ -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) {
|
||||||
|
|||||||
+1
-1
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user