Kotlin: FirMetadataSource.File.files has been removed

In new versions, but not old versions, we want FirMetadataSource.File.fir
instead.
This commit is contained in:
Ian Lynagh
2024-04-10 14:54:15 +01:00
parent 1698ccff9a
commit 7ce7685b91
5 changed files with 19 additions and 2 deletions

View File

@@ -1,6 +1,7 @@
package com.github.codeql.comments
import com.github.codeql.*
import com.github.codeql.utils.versions.*
import com.intellij.lang.LighterASTNode
import com.intellij.util.diff.FlyweightCapableTreeStructure
import org.jetbrains.kotlin.fir.backend.FirMetadataSource
@@ -26,7 +27,7 @@ class CommentExtractorLighterAST(
// Returns true if it extracted the comments; false otherwise.
fun extract(): Boolean {
val sourceElement =
(file.metadata as? FirMetadataSource.File)?.files?.elementAtOrNull(0)?.source
(file.metadata as? FirMetadataSource.File)?.firFile?.source
val treeStructure = sourceElement?.treeStructure
if (treeStructure == null) {
return false

View File

@@ -0,0 +1,7 @@
package com.github.codeql.utils.versions
import org.jetbrains.kotlin.fir.backend.FirMetadataSource
import org.jetbrains.kotlin.fir.declarations.FirFile
val FirMetadataSource.File.firFile: FirFile?
get() = this.files.elementAtOrNull(0)

View File

@@ -1,5 +1,6 @@
package com.github.codeql
import com.github.codeql.utils.versions.*
import com.intellij.lang.LighterASTNode
import com.intellij.util.diff.FlyweightCapableTreeStructure
import org.jetbrains.kotlin.KtSourceElement
@@ -14,7 +15,7 @@ class LinesOfCodeLighterAST(val logger: FileLogger, val tw: FileTrapWriter, val
fun linesOfCodeInFile(id: Label<DbFile>): Boolean {
val sourceElement =
(file.metadata as? FirMetadataSource.File)?.files?.elementAtOrNull(0)?.source
(file.metadata as? FirMetadataSource.File)?.firFile?.source
if (sourceElement == null) {
return false
}

View File

@@ -0,0 +1,7 @@
package com.github.codeql.utils.versions
import org.jetbrains.kotlin.fir.backend.FirMetadataSource
import org.jetbrains.kotlin.fir.declarations.FirFile
val FirMetadataSource.File.firFile: FirFile?
get() = this.fir