LL API: add kt -> fir mapping tests for property delegation

This commit is contained in:
Ilya Kirillov
2021-07-14 19:05:59 +02:00
committed by teamcityserver
parent 831f05a802
commit 32baac52e6
6 changed files with 47 additions and 0 deletions
@@ -0,0 +1,2 @@
// WITH_STDLIB
val x <expr>by lazy {1}</expr>
@@ -0,0 +1,8 @@
KT element: KtPropertyDelegate
FIR element: FirFunctionCallImpl
FIR element rendered:
R|kotlin/lazy|<R|kotlin/Int|>(<L> = lazy@fun <anonymous>(): R|kotlin/Int| <inline=NoInline> {
^ Int(1)
}
)
@@ -0,0 +1,2 @@
// WITH_STDLIB
val x by <expr>lazy {1}</expr>
@@ -0,0 +1,8 @@
KT element: KtCallExpression
FIR element: FirFunctionCallImpl
FIR element rendered:
R|kotlin/lazy|<R|kotlin/Int|>(<L> = lazy@fun <anonymous>(): R|kotlin/Int| <inline=NoInline> {
^ Int(1)
}
)
@@ -86,6 +86,28 @@ public class GetOrBuildFirTestGenerated extends AbstractGetOrBuildFirTest {
}
}
@Nested
@TestMetadata("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/declarations")
@TestDataPath("$PROJECT_ROOT")
public class Declarations {
@Test
public void testAllFilesPresentInDeclarations() throws Exception {
KtTestUtil.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/declarations"), Pattern.compile("^(.+)\\.kt$"), null, true);
}
@Test
@TestMetadata("propertyDelegate.kt")
public void testPropertyDelegate() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/declarations/propertyDelegate.kt");
}
@Test
@TestMetadata("propertyDelegateExpression.kt")
public void testPropertyDelegateExpression() throws Exception {
runTest("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/declarations/propertyDelegateExpression.kt");
}
}
@Nested
@TestMetadata("idea/idea-frontend-fir/idea-fir-low-level-api/testdata/getOrBuildFir/inImport")
@TestDataPath("$PROJECT_ROOT")
@@ -19,8 +19,10 @@ import org.jetbrains.kotlin.psi.KtFile
import org.jetbrains.kotlin.test.bind
import org.jetbrains.kotlin.test.builders.TestConfigurationBuilder
import org.jetbrains.kotlin.test.builders.testConfiguration
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives
import org.jetbrains.kotlin.test.model.DependencyKind
import org.jetbrains.kotlin.test.model.FrontendKinds
import org.jetbrains.kotlin.test.runners.AbstractKotlinCompilerTest
import org.jetbrains.kotlin.test.services.*
import org.jetbrains.kotlin.test.services.configuration.CommonEnvironmentConfigurator
import org.jetbrains.kotlin.test.services.configuration.JvmEnvironmentConfigurator
@@ -47,6 +49,9 @@ abstract class AbstractLowLevelApiTest : TestWithDisposable() {
assertions = JUnit5Assertions
useAdditionalService<TemporaryDirectoryManager>(::TemporaryDirectoryManagerImpl)
useDirectives(*AbstractKotlinCompilerTest.defaultDirectiveContainers.toTypedArray())
useDirectives(JvmEnvironmentConfigurationDirectives)
useSourcePreprocessor(::ExpressionMarkersSourceFilePreprocessor)
useAdditionalService(::ExpressionMarkerProvider)
useAdditionalService(::TestModuleInfoProvider)