Check created javaFileFacadeFqName short name (EA-122324)

This commit is contained in:
Nikolay Krasko
2018-07-12 18:56:51 +03:00
parent 819f6c036b
commit 5e35fd1758
@@ -16,6 +16,7 @@
package org.jetbrains.kotlin.fileClasses
import com.intellij.openapi.diagnostic.Logger
import com.intellij.psi.util.CachedValueProvider
import com.intellij.psi.util.CachedValuesManager
import org.jetbrains.kotlin.load.java.descriptors.getImplClassNameForDeserialized
@@ -109,10 +110,20 @@ val KtFile.javaFileFacadeFqName: FqName
val facadeFqName =
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 LOG = Logger.getInstance("JvmFileClassUtil")
fun KtDeclaration.isInsideJvmMultifileClassFile() = JvmFileClassUtil.findAnnotationEntryOnFileNoResolve(
containingKtFile,
JvmFileClassUtil.JVM_MULTIFILE_CLASS_SHORT