[Analysis API] Run code fragment compilation tests against libraries
This commit is contained in:
@@ -21,7 +21,6 @@ import org.jetbrains.kotlin.ir.IrFileEntry
|
||||
import org.jetbrains.kotlin.ir.declarations.*
|
||||
import org.jetbrains.kotlin.ir.expressions.*
|
||||
import org.jetbrains.kotlin.ir.symbols.IrSymbol
|
||||
import org.jetbrains.kotlin.ir.types.IrErrorType
|
||||
import org.jetbrains.kotlin.ir.types.IrType
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitor
|
||||
import org.jetbrains.kotlin.ir.visitors.IrElementVisitorVoid
|
||||
@@ -62,6 +61,8 @@ data class DumpIrTreeOptions(
|
||||
val printFlagsInDeclarationReferences: Boolean = true,
|
||||
val printSignatures: Boolean = false,
|
||||
val printTypeAbbreviations: Boolean = true,
|
||||
val printModuleName: Boolean = true,
|
||||
val printFilePath: Boolean = true,
|
||||
)
|
||||
|
||||
private fun IrFile.shouldSkipDump(): Boolean {
|
||||
|
||||
@@ -241,14 +241,22 @@ class RenderIrElementVisitor(private val options: DumpIrTreeOptions = DumpIrTree
|
||||
override fun visitDeclaration(declaration: IrDeclarationBase, data: Nothing?): String =
|
||||
"?DECLARATION? ${declaration::class.java.simpleName} $declaration"
|
||||
|
||||
override fun visitModuleFragment(declaration: IrModuleFragment, data: Nothing?): String =
|
||||
"MODULE_FRAGMENT name:${declaration.name}"
|
||||
override fun visitModuleFragment(declaration: IrModuleFragment, data: Nothing?): String {
|
||||
return buildString {
|
||||
append("MODULE_FRAGMENT")
|
||||
if (options.printModuleName) {
|
||||
append(" name:").append(declaration.name)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitExternalPackageFragment(declaration: IrExternalPackageFragment, data: Nothing?): String =
|
||||
"EXTERNAL_PACKAGE_FRAGMENT fqName:${declaration.packageFqName}"
|
||||
|
||||
override fun visitFile(declaration: IrFile, data: Nothing?): String =
|
||||
"FILE fqName:${declaration.packageFqName} fileName:${declaration.path}"
|
||||
override fun visitFile(declaration: IrFile, data: Nothing?): String {
|
||||
val fileName = if (options.printFilePath) declaration.path else declaration.name
|
||||
return "FILE fqName:${declaration.packageFqName} fileName:$fileName"
|
||||
}
|
||||
|
||||
override fun visitFunction(declaration: IrFunction, data: Nothing?): String =
|
||||
declaration.runTrimEnd {
|
||||
|
||||
Reference in New Issue
Block a user