Add FIR session argument to LightTree2Fir constructor
This commit is contained in:
committed by
Mikhail Glukhikh
parent
c253ff7953
commit
2a60f95a32
@@ -2,7 +2,6 @@ import org.ajoberstar.grgit.Grgit
|
||||
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
id("org.jetbrains.intellij") version "0.4.5"
|
||||
|
||||
//git plugin
|
||||
id("org.ajoberstar.grgit") version "3.1.1"
|
||||
@@ -20,9 +19,7 @@ repositories {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
compile("com.jetbrains.intellij.java:java-psi-impl:183.5912.17")
|
||||
compile("com.jetbrains.intellij.java:java-psi:183.5912.17")
|
||||
|
||||
compileOnly(intellijCoreDep()) { includeJars("intellij-core", "guava", rootProject = rootProject) }
|
||||
compile(project(":compiler:psi"))
|
||||
|
||||
compile("junit", "junit", "4.4")
|
||||
@@ -95,7 +92,7 @@ val jmhExec by tasks.creating(JavaExec::class) {
|
||||
main = "org.openjdk.jmh.Main"
|
||||
|
||||
workingDir = rootDir
|
||||
systemProperty("idea.home.path", project.intellij.localPath)
|
||||
systemProperty("idea.home.path", project.intellijRootDir().absolutePath)
|
||||
systemProperty("idea.max.intellisense.filesize", 5000 * 1024)
|
||||
configurations.plusAssign(project.configurations["compile"])
|
||||
}
|
||||
|
||||
@@ -6,35 +6,27 @@
|
||||
package org.jetbrains.kotlin.fir.lightTree
|
||||
|
||||
import com.intellij.lang.LighterASTNode
|
||||
import com.intellij.lang.ParserDefinition
|
||||
import com.intellij.lang.impl.PsiBuilderFactoryImpl
|
||||
import com.intellij.lexer.Lexer
|
||||
import com.intellij.openapi.project.Project
|
||||
import com.intellij.openapi.util.io.FileUtil
|
||||
import com.intellij.openapi.vfs.CharsetToolkit
|
||||
import com.intellij.psi.DummyHolderViewProvider
|
||||
import com.intellij.psi.PsiManager
|
||||
import com.intellij.psi.SingleRootFileViewProvider
|
||||
import com.intellij.psi.impl.PsiManagerEx
|
||||
import com.intellij.testFramework.LightVirtualFile
|
||||
import com.intellij.util.diff.FlyweightCapableTreeStructure
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.FirSessionBase
|
||||
import org.jetbrains.kotlin.fir.declarations.FirFile
|
||||
import org.jetbrains.kotlin.fir.lightTree.converter.DeclarationsConverter
|
||||
import org.jetbrains.kotlin.idea.KotlinFileType
|
||||
import org.jetbrains.kotlin.lexer.KotlinLexer
|
||||
import org.jetbrains.kotlin.parsing.KotlinParser
|
||||
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
||||
import org.jetbrains.kotlin.parsing.MyKotlinParser
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import java.io.File
|
||||
import java.nio.file.Path
|
||||
|
||||
class LightTree2Fir(
|
||||
private val project: Project,
|
||||
private val stubMode: Boolean,
|
||||
private val project: Project
|
||||
private val session: FirSession = object : FirSessionBase(null) {}
|
||||
) {
|
||||
private val ktDummyFile = KtFile(SingleRootFileViewProvider(PsiManager.getInstance(project), LightVirtualFile()), false)
|
||||
//private val ktDummyFile = KtFile(SingleRootFileViewProvider(PsiManager.getInstance(project), LightVirtualFile()), false)
|
||||
|
||||
companion object {
|
||||
private val parserDefinition = KotlinParserDefinition()
|
||||
@@ -74,7 +66,7 @@ class LightTree2Fir(
|
||||
fun buildFirFile(code: String, fileName: String): FirFile {
|
||||
val lightTree = buildLightTree(code)
|
||||
|
||||
return DeclarationsConverter(object : FirSessionBase(null) {}, stubMode, lightTree)
|
||||
return DeclarationsConverter(session, stubMode, lightTree)
|
||||
.convertFile(lightTree.root, fileName)
|
||||
}
|
||||
}
|
||||
+2
-2
@@ -8,9 +8,9 @@ package org.jetbrains.kotlin.fir.lightTree
|
||||
import com.intellij.testFramework.TestDataPath
|
||||
import junit.framework.TestCase
|
||||
import org.jetbrains.kotlin.fir.FirRenderer
|
||||
import org.jetbrains.kotlin.fir.FirSessionBase
|
||||
import org.jetbrains.kotlin.fir.builder.AbstractRawFirBuilderTestCase
|
||||
import org.jetbrains.kotlin.fir.render
|
||||
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
||||
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners
|
||||
import org.junit.runner.RunWith
|
||||
import java.nio.file.Paths
|
||||
@@ -21,7 +21,7 @@ class LightTree2FirConverterTestCases : AbstractRawFirBuilderTestCase() {
|
||||
private val testDirPath = "compiler/fir/psi2fir/testData/rawBuilder/declarations"
|
||||
|
||||
private fun executeTest(filePath: String) {
|
||||
val lightTree2Fir = LightTree2Fir(true, myProject).buildFirFile(Paths.get(filePath)).render()
|
||||
val lightTree2Fir = LightTree2Fir(myProject, stubMode = true).buildFirFile(Paths.get(filePath)).render()
|
||||
|
||||
val file = createKtFile(filePath)
|
||||
val firFile = file.toFirFile(stubMode = true)
|
||||
|
||||
@@ -11,8 +11,8 @@ import com.intellij.psi.impl.DebugUtil
|
||||
import com.intellij.testFramework.TestDataPath
|
||||
import com.intellij.util.PathUtil
|
||||
import org.jetbrains.kotlin.fir.FirRenderer
|
||||
import org.jetbrains.kotlin.fir.FirSessionBase
|
||||
import org.jetbrains.kotlin.fir.builder.AbstractRawFirBuilderTestCase
|
||||
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.jetbrains.kotlin.test.JUnit3RunnerWithInners
|
||||
import org.junit.runner.RunWith
|
||||
@@ -47,7 +47,7 @@ class TotalKotlinTest : AbstractRawFirBuilderTestCase() {
|
||||
var counter = 0
|
||||
var time = 0L
|
||||
|
||||
val lightTreeConverter = LightTree2Fir(true, myProject)
|
||||
val lightTreeConverter = LightTree2Fir(myProject, stubMode = true)
|
||||
|
||||
if (onlyLightTree) println("LightTree generation") else println("Fir from LightTree converter")
|
||||
println("BASE PATH: $path")
|
||||
|
||||
+3
-3
@@ -7,9 +7,9 @@ package org.jetbrains.kotlin.fir.lightTree.benchmark.generators
|
||||
|
||||
import com.intellij.psi.impl.DebugUtil
|
||||
import org.jetbrains.kotlin.fir.FirRenderer
|
||||
import org.jetbrains.kotlin.fir.FirSessionBase
|
||||
import org.jetbrains.kotlin.fir.builder.AbstractRawFirBuilderTestCase
|
||||
import org.jetbrains.kotlin.fir.lightTree.LightTree2Fir
|
||||
import org.jetbrains.kotlin.parsing.KotlinParserDefinition
|
||||
import org.openjdk.jmh.annotations.Scope
|
||||
import org.openjdk.jmh.annotations.State
|
||||
import java.io.File
|
||||
@@ -17,13 +17,13 @@ import java.io.File
|
||||
@State(Scope.Benchmark)
|
||||
open class LightTree2FirGenerator : TreeGenerator, AbstractRawFirBuilderTestCase() {
|
||||
override fun generateBaseTree(text: String, file: File) {
|
||||
val lightTreeConverter = LightTree2Fir(false, myProject)
|
||||
val lightTreeConverter = LightTree2Fir(myProject, stubMode = false)
|
||||
val lightTree = lightTreeConverter.buildLightTree(text)
|
||||
DebugUtil.lightTreeToString(lightTree, false)
|
||||
}
|
||||
|
||||
override fun generateFir(text: String, file: File, stubMode: Boolean) {
|
||||
val lightTreeConverter = LightTree2Fir(stubMode, myProject)
|
||||
val lightTreeConverter = LightTree2Fir(myProject, stubMode)
|
||||
val firFile = lightTreeConverter.buildFirFile(text, file.name)
|
||||
StringBuilder().also { FirRenderer(it).visitFile(firFile) }.toString()
|
||||
}
|
||||
|
||||
+4
-3
@@ -11,6 +11,7 @@ import com.intellij.testFramework.TestDataPath
|
||||
import com.intellij.util.PathUtil
|
||||
import junit.framework.TestCase
|
||||
import org.jetbrains.kotlin.fir.FirRenderer
|
||||
import org.jetbrains.kotlin.fir.FirSessionBase
|
||||
import org.jetbrains.kotlin.fir.builder.AbstractRawFirBuilderTestCase
|
||||
import org.jetbrains.kotlin.fir.lightTree.LightTree2Fir
|
||||
import org.jetbrains.kotlin.fir.lightTree.walkTopDown
|
||||
@@ -43,7 +44,7 @@ class TreesCompareTest : AbstractRawFirBuilderTestCase() {
|
||||
}
|
||||
|
||||
private fun compareAll(stubMode: Boolean) {
|
||||
val lightTreeConverter = LightTree2Fir(stubMode, myProject)
|
||||
val lightTreeConverter = LightTree2Fir(myProject, stubMode)
|
||||
compareBase(System.getProperty("user.dir"), withTestData = false) { file ->
|
||||
val text = FileUtil.loadFile(file, CharsetToolkit.UTF8, true).trim()
|
||||
|
||||
@@ -61,7 +62,7 @@ class TreesCompareTest : AbstractRawFirBuilderTestCase() {
|
||||
}
|
||||
|
||||
fun testCompareDiagnostics() {
|
||||
val lightTreeConverter = LightTree2Fir(false, myProject)
|
||||
val lightTreeConverter = LightTree2Fir(myProject, stubMode = false)
|
||||
compareBase("compiler/testData/diagnostics/tests", withTestData = true) { file ->
|
||||
val notEditedText = FileUtil.loadFile(file, CharsetToolkit.UTF8, true).trim()
|
||||
val text = notEditedText.replace("(<!>)|(<!.*?!>)".toRegex(), "").replaceAfter(".java", "")
|
||||
@@ -128,7 +129,7 @@ class TreesCompareTest : AbstractRawFirBuilderTestCase() {
|
||||
visitLambdaArgumentExpression = visitLambdaArgumentExpression,
|
||||
visitAnonymousObject = visitAnonymousObject
|
||||
)
|
||||
val lightTreeConverter = LightTree2Fir(stubMode, myProject)
|
||||
val lightTreeConverter = LightTree2Fir(myProject, stubMode)
|
||||
compareBase(path, withTestData) { file ->
|
||||
val text = FileUtil.loadFile(file, CharsetToolkit.UTF8, true).trim()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user