(lightClass) multifile classes facade in libraries added
relates to #KT-39196
This commit is contained in:
@@ -108,24 +108,28 @@ object JvmFileClassUtil {
|
|||||||
|
|
||||||
internal class ParsedJvmFileClassAnnotations(val jvmName: String?, val jvmPackageName: FqName?, val isMultifileClass: Boolean)
|
internal class ParsedJvmFileClassAnnotations(val jvmName: String?, val jvmPackageName: FqName?, val isMultifileClass: Boolean)
|
||||||
|
|
||||||
val KtFile.javaFileFacadeFqName: FqName
|
val KtFile.fileClassInfo: JvmFileClassInfo
|
||||||
get() {
|
get() {
|
||||||
return CachedValuesManager.getCachedValue(this) {
|
return CachedValuesManager.getCachedValue(this) {
|
||||||
val facadeFqName =
|
CachedValueProvider.Result(JvmFileClassUtil.getFileClassInfoNoResolve(this), this)
|
||||||
if (isCompiled) packageFqName.child(Name.identifier(virtualFile.nameWithoutExtension))
|
|
||||||
else JvmFileClassUtil.getFileClassInfoNoResolve(this).facadeClassFqName
|
|
||||||
|
|
||||||
if (!Name.isValidIdentifier(facadeFqName.shortName().identifier)) {
|
|
||||||
LOG.error(
|
|
||||||
"An invalid fqName `$facadeFqName` with short name `${facadeFqName.shortName()}` is created for file `$name` " +
|
|
||||||
"(isCompiled = $isCompiled)"
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
CachedValueProvider.Result(facadeFqName, this)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
val KtFile.javaFileFacadeFqName: FqName
|
||||||
|
get() {
|
||||||
|
val facadeFqName =
|
||||||
|
if (isCompiled) packageFqName.child(Name.identifier(virtualFile.nameWithoutExtension))
|
||||||
|
else this.fileClassInfo.facadeClassFqName
|
||||||
|
|
||||||
|
if (!Name.isValidIdentifier(facadeFqName.shortName().identifier)) {
|
||||||
|
LOG.error(
|
||||||
|
"An invalid fqName `$facadeFqName` with short name `${facadeFqName.shortName()}` is created for file `$name` " +
|
||||||
|
"(isCompiled = $isCompiled)"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
return facadeFqName
|
||||||
|
}
|
||||||
|
|
||||||
private val LOG = Logger.getInstance("JvmFileClassUtil")
|
private val LOG = Logger.getInstance("JvmFileClassUtil")
|
||||||
|
|
||||||
fun KtDeclaration.isInsideJvmMultifileClassFile() =
|
fun KtDeclaration.isInsideJvmMultifileClassFile() =
|
||||||
|
|||||||
Reference in New Issue
Block a user