in src/main/kotlin/io/bazel/kotlin/plugin/jdeps/JdepsGenExtension.kt [81:101]
fun getClassCanonicalPath(descriptor: DeclarationDescriptorWithSource): String? {
return when (val sourceElement: SourceElement = descriptor.source) {
is JavaSourceElement ->
if (sourceElement.javaElement is BinaryJavaClass) {
(sourceElement.javaElement as BinaryJavaClass).virtualFile.canonicalPath
} else if (sourceElement.javaElement is BinaryJavaField) {
val containingClass = (sourceElement.javaElement as BinaryJavaField).containingClass
if (containingClass is BinaryJavaClass) {
containingClass.virtualFile.canonicalPath
} else {
null
}
} else {
// Ignore Java source local to this module.
null
}
is KotlinJvmBinarySourceElement ->
(sourceElement.binaryClass as VirtualFileKotlinClass).file.canonicalPath
else -> null
}
}