[FIR] Remove BodyBuildingMode.STUBS from RawFirBuilder
This commit is contained in:
committed by
teamcityserver
parent
116a1c1e46
commit
8904d6fde9
+1
-1
@@ -29,7 +29,7 @@ class TotalKotlinTest : AbstractRawFirBuilderTestCase() {
|
||||
if (onlyPsi) {
|
||||
DebugUtil.psiTreeToString(ktFile, false)
|
||||
} else {
|
||||
val firFile = ktFile.toFirFile(BodyBuildingMode.STUBS)
|
||||
val firFile = ktFile.toFirFile()
|
||||
StringBuilder().also { FirRenderer(it).visitFile(firFile) }.toString()
|
||||
}
|
||||
}
|
||||
|
||||
+1
-4
@@ -31,9 +31,6 @@ abstract class AbstractBenchmark {
|
||||
private val files = mutableMapOf<File, String>()
|
||||
abstract val generator: TreeGenerator
|
||||
|
||||
@Param("true", "false")
|
||||
var stubMode: Boolean = false
|
||||
|
||||
protected fun readFiles(ignoreTestData: Boolean, path: String) {
|
||||
println("BASE PATH: $path")
|
||||
val saveText: (File) -> Unit = { file ->
|
||||
@@ -56,4 +53,4 @@ abstract class AbstractBenchmark {
|
||||
protected fun getFilesCount(): Int {
|
||||
return files.size
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -30,6 +30,6 @@ abstract class AbstractBenchmarkForGivenPath(
|
||||
|
||||
@Benchmark
|
||||
fun testBuildFirForGivenPath() {
|
||||
forEachFile { text, file -> generator.generateFir(text, file, stubMode) }
|
||||
forEachFile { text, file -> generator.generateFir(text, file) }
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -53,7 +53,7 @@ abstract class AbstractKotlinBenchmark : AbstractBenchmark() {
|
||||
|
||||
@Benchmark
|
||||
fun testCreatedFiles() {
|
||||
generator.generateFir(text, file, stubMode)
|
||||
generator.generateFir(text, file)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,4 +61,4 @@ open class LightTree2FirKotlinBenchmark(override val generator: TreeGenerator =
|
||||
AbstractKotlinBenchmark()
|
||||
|
||||
open class Psi2FirKotlinBenchmark(override val generator: TreeGenerator = Psi2FirGenerator()) :
|
||||
AbstractKotlinBenchmark()
|
||||
AbstractKotlinBenchmark()
|
||||
|
||||
+1
-1
@@ -26,7 +26,7 @@ open class LightTree2FirGenerator : TreeGenerator, AbstractRawFirBuilderTestCase
|
||||
DebugUtil.lightTreeToString(lightTree, false)
|
||||
}
|
||||
|
||||
override fun generateFir(text: String, file: File, stubMode: Boolean) {
|
||||
override fun generateFir(text: String, file: File) {
|
||||
val lightTreeConverter = LightTree2Fir(
|
||||
session = FirSessionFactory.createEmptySession(),
|
||||
scopeProvider = StubFirScopeProvider
|
||||
|
||||
+3
-4
@@ -10,7 +10,6 @@ import com.intellij.psi.impl.DebugUtil
|
||||
import com.intellij.util.PathUtil
|
||||
import org.jetbrains.kotlin.fir.FirRenderer
|
||||
import org.jetbrains.kotlin.fir.builder.AbstractRawFirBuilderTestCase
|
||||
import org.jetbrains.kotlin.fir.builder.BodyBuildingMode
|
||||
import org.jetbrains.kotlin.psi.KtFile
|
||||
import org.openjdk.jmh.annotations.Scope
|
||||
import org.openjdk.jmh.annotations.State
|
||||
@@ -23,9 +22,9 @@ open class Psi2FirGenerator : TreeGenerator, AbstractRawFirBuilderTestCase() {
|
||||
DebugUtil.psiTreeToString(ktFile, false)
|
||||
}
|
||||
|
||||
override fun generateFir(text: String, file: File, stubMode: Boolean) {
|
||||
override fun generateFir(text: String, file: File) {
|
||||
val ktFile = createPsiFile(FileUtil.getNameWithoutExtension(PathUtil.getFileName(file.path)), text) as KtFile
|
||||
val firFile = ktFile.toFirFile(BodyBuildingMode.stubs(stubMode))
|
||||
val firFile = ktFile.toFirFile()
|
||||
StringBuilder().also { FirRenderer(it).visitFile(firFile) }.toString()
|
||||
}
|
||||
|
||||
@@ -36,4 +35,4 @@ open class Psi2FirGenerator : TreeGenerator, AbstractRawFirBuilderTestCase() {
|
||||
override fun tearDown() {
|
||||
super.tearDown()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-2
@@ -9,7 +9,7 @@ import java.io.File
|
||||
|
||||
interface TreeGenerator {
|
||||
fun generateBaseTree(text: String, file: File)
|
||||
fun generateFir(text: String, file: File, stubMode: Boolean)
|
||||
fun generateFir(text: String, file: File)
|
||||
fun setUp()
|
||||
fun tearDown()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -474,7 +474,6 @@ open class RawFirBuilder(
|
||||
mode == BodyBuildingMode.LAZY_BODIES -> buildLazyExpression {
|
||||
source = this@toFirBackingField?.initializer?.toFirSourceElement()
|
||||
}
|
||||
mode == BodyBuildingMode.STUBS -> buildExpressionStub()
|
||||
else -> this@toFirBackingField?.initializer.toFirExpression("Should have initializer")
|
||||
}
|
||||
val returnType = this?.returnTypeReference.toFirOrImplicitType()
|
||||
@@ -1450,7 +1449,6 @@ open class RawFirBuilder(
|
||||
mode == BodyBuildingMode.LAZY_BODIES -> buildLazyExpression {
|
||||
source = initializer?.toFirSourceElement()
|
||||
}
|
||||
mode == BodyBuildingMode.STUBS -> buildExpressionStub()
|
||||
else -> initializer.toFirExpression("Should have initializer")
|
||||
|
||||
}
|
||||
@@ -1538,7 +1536,6 @@ open class RawFirBuilder(
|
||||
if (hasDelegate()) {
|
||||
fun extractDelegateExpression() = when (mode) {
|
||||
BodyBuildingMode.NORMAL -> this@toFirProperty.delegate?.expression.toFirExpression("Should have delegate")
|
||||
BodyBuildingMode.STUBS -> buildExpressionStub()
|
||||
BodyBuildingMode.LAZY_BODIES -> this@toFirProperty.delegate?.expression?.let {
|
||||
buildLazyExpression { source = it.toFirSourceElement() }
|
||||
} ?: buildErrorExpression {
|
||||
@@ -2442,11 +2439,6 @@ enum class BodyBuildingMode {
|
||||
*/
|
||||
NORMAL,
|
||||
|
||||
/**
|
||||
* Build [org.jetbrains.kotlin.fir.expressions.impl.FirExpressionStub] for expressions
|
||||
*/
|
||||
STUBS,
|
||||
|
||||
/**
|
||||
* Build [org.jetbrains.kotlin.fir.expressions.impl.FirLazyBlock] for function bodies, constructors & getters/setters
|
||||
* Build [org.jetbrains.kotlin.fir.expressions.impl.FirLazyExpression] for property initializers
|
||||
|
||||
+4
-16
@@ -32,7 +32,7 @@ import kotlin.system.measureNanoTime
|
||||
@RunWith(JUnit3RunnerWithInners::class)
|
||||
class RawFirBuilderTotalKotlinTestCase : AbstractRawFirBuilderTestCase() {
|
||||
|
||||
private fun testTotalKotlinWithGivenMode(stubMode: Boolean) {
|
||||
fun testTotalKotlinWithExpressionTrees() {
|
||||
val root = File(testDataPath)
|
||||
var counter = 0
|
||||
var time = 0L
|
||||
@@ -63,7 +63,7 @@ class RawFirBuilderTotalKotlinTestCase : AbstractRawFirBuilderTestCase() {
|
||||
val ktFile = createKtFile(file.toRelativeString(root))
|
||||
val firFile: FirFile
|
||||
time += measureNanoTime {
|
||||
firFile = ktFile.toFirFile(BodyBuildingMode.stubs(stubMode))
|
||||
firFile = ktFile.toFirFile()
|
||||
}
|
||||
totalLength += StringBuilder().also { FirRenderer(it).visitFile(firFile) }.length
|
||||
counter++
|
||||
@@ -93,9 +93,7 @@ class RawFirBuilderTotalKotlinTestCase : AbstractRawFirBuilderTestCase() {
|
||||
when (expression) {
|
||||
is FirExpressionStub -> {
|
||||
expressionStubs++
|
||||
if (!stubMode) {
|
||||
println(expression.psi?.text)
|
||||
}
|
||||
println(expression.psi?.text)
|
||||
}
|
||||
else -> normalExpressions++
|
||||
}
|
||||
@@ -160,22 +158,12 @@ class RawFirBuilderTotalKotlinTestCase : AbstractRawFirBuilderTestCase() {
|
||||
println("KT EXPRESSIONS: $ktExpressions")
|
||||
println("KT DECLARATIONS: $ktDeclarations")
|
||||
println("KT REFERENCES: $ktReferences")
|
||||
if (!stubMode) {
|
||||
assertEquals("# of expression stubs", 0, expressionStubs)
|
||||
}
|
||||
assertEquals("# of expression stubs", 0, expressionStubs)
|
||||
assertEquals("# of error expressions", 0, errorExpressions)
|
||||
assertEquals("# of error declarations", 0, errorDeclarations)
|
||||
assertEquals("# of error references", 0, errorReferences)
|
||||
}
|
||||
|
||||
fun testTotalKotlinWithExpressionTrees() {
|
||||
testTotalKotlinWithGivenMode(stubMode = false)
|
||||
}
|
||||
|
||||
fun testTotalKotlinWithDeclarationsOnly() {
|
||||
testTotalKotlinWithGivenMode(stubMode = true)
|
||||
}
|
||||
|
||||
private fun testConsistency(checkConsistency: FirFile.() -> Unit) {
|
||||
val root = File(testDataPath)
|
||||
for (file in root.walkTopDown()) {
|
||||
|
||||
+1
-1
@@ -137,7 +137,7 @@ object KtDeclarationAndFirDeclarationEqualityChecker {
|
||||
createEmptySession(),
|
||||
DummyScopeProvider,
|
||||
psiMode = PsiHandlingMode.IDE,
|
||||
bodyBuildingMode = BodyBuildingMode.STUBS
|
||||
bodyBuildingMode = BodyBuildingMode.NORMAL
|
||||
).buildTypeReference(this)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user