Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 7a756e3

Browse files
smowtonigfoo
authored andcommitted
Extract compilation-unit package and location for class files
1 parent 024f8c6 commit 7a756e3

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

java/kotlin-extractor/src/main/kotlin/ExternalClassExtractor.kt

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package com.github.codeql
33
import com.semmle.extractor.java.OdasaOutput
44
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
55
import org.jetbrains.kotlin.ir.declarations.IrClass
6-
import org.jetbrains.kotlin.ir.util.IdSignature
6+
import org.jetbrains.kotlin.ir.util.packageFqName
77
import java.io.File
88
import java.util.ArrayList
99
import java.util.HashSet
@@ -44,6 +44,15 @@ class ExternalClassExtractor(val logger: FileLogger, val invocationTrapFile: Str
4444
val ftw = tw.makeFileTrapWriter(binaryPath, true)
4545

4646
val fileExtractor = KotlinFileExtractor(logger, ftw, binaryPath, manager, this, primitiveTypeMapping, pluginContext, genericSpecialisationsExtracted)
47+
48+
// Populate a location and compilation-unit package for the file. This is similar to
49+
// the beginning of `KotlinFileExtractor.extractFileContents` but without an `IrFile`
50+
// to start from.
51+
val pkg = irClass.packageFqName?.asString() ?: ""
52+
val pkgId = fileExtractor.extractPackage(pkg)
53+
ftw.writeHasLocation(ftw.fileId, ftw.getWholeFileLocation())
54+
ftw.writeCupackage(ftw.fileId, pkgId)
55+
4756
fileExtractor.extractClassSource(irClass)
4857
}
4958
}

0 commit comments

Comments
 (0)