Outer classes are properly computed
This commit is contained in:
committed by
Alexander Udalov
parent
b536b3961e
commit
b38c5b9d08
+9
@@ -30,6 +30,15 @@ public final class ClassId {
|
|||||||
return new ClassId(getPackageFqName(), relativeClassName.child(name));
|
return new ClassId(getPackageFqName(), relativeClassName.child(name));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public ClassId getOuterClassId() {
|
||||||
|
return new ClassId(getPackageFqName(), relativeClassName.parent());
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isTopLevelClass() {
|
||||||
|
return relativeClassName.parent().isRoot();
|
||||||
|
}
|
||||||
|
|
||||||
public FqNameUnsafe asSingleFqName() {
|
public FqNameUnsafe asSingleFqName() {
|
||||||
if (packageFqName.isRoot()) return relativeClassName;
|
if (packageFqName.isRoot()) return relativeClassName;
|
||||||
return new FqNameUnsafe(packageFqName.asString() + "." + relativeClassName.asString());
|
return new FqNameUnsafe(packageFqName.asString() + "." + relativeClassName.asString());
|
||||||
|
|||||||
+4
-1
@@ -324,7 +324,10 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
|||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
protected ClassDescriptor doCompute(@NotNull ClassId classId) {
|
protected ClassDescriptor doCompute(@NotNull ClassId classId) {
|
||||||
return resolveClass(ClassResolverImpl.this.parentForClasses, classId);
|
DeclarationDescriptor containingDeclaration =
|
||||||
|
classId.isTopLevelClass() ? ClassResolverImpl.this.parentForClasses : findClass(classId.getOuterClassId());
|
||||||
|
assert containingDeclaration != null : "Containing declaration not found: " + classId.getOuterClassId();
|
||||||
|
return resolveClass(containingDeclaration, classId);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user