mirror of
https://github.com/github/codeql.git
synced 2025-12-22 19:56:32 +01:00
Kotlin: Add 1.5.10 specific files
This commit is contained in:
@@ -0,0 +1,17 @@
|
|||||||
|
package com.github.codeql.utils.versions
|
||||||
|
|
||||||
|
import com.github.codeql.KotlinUsesExtractor
|
||||||
|
import com.github.codeql.Severity
|
||||||
|
import org.jetbrains.kotlin.ir.ObsoleteDescriptorBasedAPI
|
||||||
|
import org.jetbrains.kotlin.ir.util.DeclarationStubGenerator
|
||||||
|
import org.jetbrains.kotlin.ir.util.SymbolTable
|
||||||
|
|
||||||
|
@OptIn(ObsoleteDescriptorBasedAPI::class)
|
||||||
|
fun <TIrStub> KotlinUsesExtractor.getIrStubFromDescriptor(generateStub: (DeclarationStubGenerator) -> TIrStub) : TIrStub? =
|
||||||
|
(pluginContext.symbolTable as? SymbolTable) ?.let {
|
||||||
|
val stubGenerator = DeclarationStubGenerator(pluginContext.moduleDescriptor, it, pluginContext.languageVersionSettings)
|
||||||
|
generateStub(stubGenerator)
|
||||||
|
} ?: run {
|
||||||
|
logger.error("Plugin context has no symbol table, couldn't get IR stub")
|
||||||
|
null
|
||||||
|
}
|
||||||
@@ -0,0 +1,5 @@
|
|||||||
|
package com.github.codeql.utils.versions
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.ir.SourceManager
|
||||||
|
|
||||||
|
typealias FileEntry = SourceManager.FileEntry
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package com.github.codeql.utils.versions
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.backend.common.extensions.IrPluginContext
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrClass
|
||||||
|
|
||||||
|
fun functionN(pluginContext: IrPluginContext): (Int) -> IrClass {
|
||||||
|
return { i -> pluginContext.irBuiltIns.functionFactory.functionN(i) }
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
package com.github.codeql.utils.versions
|
||||||
|
|
||||||
|
import com.intellij.psi.PsiElement
|
||||||
|
import org.jetbrains.kotlin.ir.IrElement
|
||||||
|
import org.jetbrains.kotlin.ir.declarations.IrFile
|
||||||
|
import org.jetbrains.kotlin.psi.KtFile
|
||||||
|
import org.jetbrains.kotlin.psi2ir.PsiSourceManager
|
||||||
|
|
||||||
|
class Psi2Ir : Psi2IrFacade {
|
||||||
|
companion object {
|
||||||
|
val psiManager = PsiSourceManager()
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getKtFile(irFile: IrFile): KtFile? {
|
||||||
|
return psiManager.getKtFile(irFile)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun findPsiElement(irElement: IrElement, irFile: IrFile): PsiElement? {
|
||||||
|
return psiManager.findPsiElement(irElement, irFile)
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package com.github.codeql.utils.versions
|
||||||
|
|
||||||
|
import org.jetbrains.kotlin.backend.jvm.codegen.isRawType
|
||||||
|
import org.jetbrains.kotlin.ir.types.IrSimpleType
|
||||||
|
|
||||||
|
|
||||||
|
fun IrSimpleType.isRawType() = this.isRawType()
|
||||||
Reference in New Issue
Block a user