mirror of
https://github.com/github/codeql.git
synced 2025-12-24 04:36:35 +01:00
Kotlin: KotlinSourceFileExtractor: Take filePath rather than file
This commit is contained in:
@@ -123,8 +123,8 @@ fun doFile(invocationTrapFile: String,
|
||||
// file information
|
||||
val sftw = tw.makeSourceFileTrapWriter(file, true)
|
||||
val externalClassExtractor = ExternalClassExtractor(logger, invocationTrapFile, file.path, primitiveTypeMapping, pluginContext, genericSpecialisationsExtracted)
|
||||
val fileExtractor = KotlinSourceFileExtractor(logger, sftw, file, externalClassExtractor, primitiveTypeMapping, pluginContext, genericSpecialisationsExtracted)
|
||||
fileExtractor.extractFileContents(sftw.fileId)
|
||||
val fileExtractor = KotlinSourceFileExtractor(logger, sftw, file.path, externalClassExtractor, primitiveTypeMapping, pluginContext, genericSpecialisationsExtracted)
|
||||
fileExtractor.extractFileContents(file, sftw.fileId)
|
||||
externalClassExtractor.extractExternalClasses()
|
||||
}
|
||||
if (checkTrapIdentical && trapFile.exists()) {
|
||||
|
||||
@@ -2513,7 +2513,7 @@ open class KotlinFileExtractor(
|
||||
}
|
||||
|
||||
if (parent is IrFile) {
|
||||
if (this is KotlinSourceFileExtractor && this.file == parent) {
|
||||
if (this is KotlinSourceFileExtractor && this.filePath == parent.path) {
|
||||
val fileId = extractFileClass(parent)
|
||||
tw.writeEnclInReftype(id, fileId)
|
||||
} else {
|
||||
|
||||
@@ -14,7 +14,7 @@ import org.jetbrains.kotlin.ir.util.IdSignature
|
||||
class KotlinSourceFileExtractor(
|
||||
logger: FileLogger,
|
||||
tw: FileTrapWriter,
|
||||
val file: IrFile,
|
||||
val filePath: String,
|
||||
externalClassExtractor: ExternalClassExtractor,
|
||||
primitiveTypeMapping: PrimitiveTypeMapping,
|
||||
pluginContext: IrPluginContext,
|
||||
@@ -22,13 +22,13 @@ class KotlinSourceFileExtractor(
|
||||
) :
|
||||
KotlinFileExtractor(logger, tw, null, externalClassExtractor, primitiveTypeMapping, pluginContext, genericSpecialisationsExtracted) {
|
||||
|
||||
fun extractFileContents(id: Label<DbFile>) {
|
||||
fun extractFileContents(file: IrFile, id: Label<DbFile>) {
|
||||
val locId = tw.getWholeFileLocation()
|
||||
val pkg = file.fqName.asString()
|
||||
val pkgId = extractPackage(pkg)
|
||||
tw.writeHasLocation(id, locId)
|
||||
tw.writeCupackage(id, pkgId)
|
||||
file.declarations.map { extractDeclaration(it) }
|
||||
CommentExtractor(this).extract()
|
||||
CommentExtractor(this, file).extract()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -125,13 +125,13 @@ open class KotlinUsesExtractor(
|
||||
return KotlinFileExtractor(newLogger, newTrapWriter, dependencyCollector, externalClassExtractor, primitiveTypeMapping, pluginContext, genericSpecialisationsExtracted)
|
||||
}
|
||||
|
||||
if (this is KotlinSourceFileExtractor && this.file == clsFile) {
|
||||
if (this is KotlinSourceFileExtractor && this.filePath == clsFile.path) {
|
||||
return this
|
||||
}
|
||||
|
||||
val newTrapWriter = tw.makeSourceFileTrapWriter(clsFile, false)
|
||||
val newLogger = FileLogger(logger.logCounter, newTrapWriter)
|
||||
return KotlinSourceFileExtractor(newLogger, newTrapWriter, clsFile, externalClassExtractor, primitiveTypeMapping, pluginContext, genericSpecialisationsExtracted)
|
||||
return KotlinSourceFileExtractor(newLogger, newTrapWriter, clsFile.path, externalClassExtractor, primitiveTypeMapping, pluginContext, genericSpecialisationsExtracted)
|
||||
}
|
||||
|
||||
// The Kotlin compiler internal representation of Outer<T>.Inner<S>.InnerInner<R> is InnerInner<R, S, T>. This function returns just `R`.
|
||||
|
||||
@@ -7,14 +7,14 @@ import com.intellij.psi.PsiComment
|
||||
import com.intellij.psi.PsiElement
|
||||
import org.jetbrains.kotlin.ir.IrElement
|
||||
import org.jetbrains.kotlin.ir.declarations.path
|
||||
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||
import org.jetbrains.kotlin.kdoc.psi.api.KDoc
|
||||
import org.jetbrains.kotlin.lexer.KtTokens
|
||||
import org.jetbrains.kotlin.psi.KtVisitor
|
||||
import org.jetbrains.kotlin.psi.psiUtil.endOffset
|
||||
import org.jetbrains.kotlin.psi.psiUtil.startOffset
|
||||
|
||||
class CommentExtractor(private val fileExtractor: KotlinSourceFileExtractor) {
|
||||
private val file = fileExtractor.file
|
||||
class CommentExtractor(private val fileExtractor: KotlinSourceFileExtractor, private val file: IrFile) {
|
||||
private val tw = fileExtractor.tw
|
||||
private val logger = fileExtractor.logger
|
||||
private val ktFile = Psi2Ir().getKtFile(file)
|
||||
|
||||
Reference in New Issue
Block a user