From bbf450703f4c3226646f88edf9b7e14884d0f9d6 Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Fri, 9 Oct 2020 11:37:55 +0300 Subject: [PATCH] FIR: introduce stub bodies raw fir test case --- .../rawBuilder/declarations/F.lazyBodies.txt | 13 + .../NestedOfAliasedType.lazyBodies.txt | 28 ++ .../NestedSuperType.lazyBodies.txt | 34 ++ .../declarations/annotation.lazyBodies.txt | 55 +++ .../declarations/complexTypes.lazyBodies.txt | 19 + .../constructorInObject.lazyBodies.txt | 54 +++ ...onstructorOfAnonymousObject.lazyBodies.txt | 2 + ...ewSyntaxContractDescription.lazyBodies.txt | 6 + ...ccessorsContractDescription.lazyBodies.txt | 51 +++ ...unctionsContractDescription.lazyBodies.txt | 12 + .../contractDescription.lazyBodies.txt | 11 + .../declarations/derivedClass.lazyBodies.txt | 17 + .../emptyAnonymousObject.lazyBodies.txt | 2 + .../declarations/enums.lazyBodies.txt | 142 +++++++ .../declarations/enums2.lazyBodies.txt | 50 +++ .../declarations/expectActual.lazyBodies.txt | 19 + .../declarations/functionTypes.lazyBodies.txt | 4 + .../genericFunctions.lazyBodies.txt | 12 + .../genericProperty.lazyBodies.txt | 4 + .../declarations/nestedClass.lazyBodies.txt | 30 ++ .../noPrimaryConstructor.lazyBodies.txt | 12 + .../declarations/simpleClass.lazyBodies.txt | 33 ++ .../declarations/simpleFun.lazyBodies.txt | 3 + .../simpleTypeAlias.lazyBodies.txt | 10 + .../typeAliasWithGeneric.lazyBodies.txt | 16 + .../typeParameterVsNested.lazyBodies.txt | 34 ++ .../typeParameters.lazyBodies.txt | 25 ++ .../declarations/where.lazyBodies.txt | 11 + .../expressions/annotated.lazyBodies.txt | 17 + .../expressions/arrayAccess.lazyBodies.txt | 14 + .../arrayAssignment.lazyBodies.txt | 4 + .../expressions/branches.lazyBodies.txt | 5 + .../callableReferences.lazyBodies.txt | 30 ++ .../expressions/calls.lazyBodies.txt | 22 + .../expressions/classReference.lazyBodies.txt | 8 + .../collectionLiterals.lazyBodies.txt | 52 +++ .../expressions/destructuring.lazyBodies.txt | 25 ++ .../rawBuilder/expressions/for.lazyBodies.txt | 24 ++ .../expressions/genericCalls.lazyBodies.txt | 3 + .../rawBuilder/expressions/in.lazyBodies.txt | 2 + .../expressions/inBrackets.lazyBodies.txt | 2 + .../expressions/init.lazyBodies.txt | 14 + .../expressions/labelForInfix.lazyBodies.txt | 2 + .../expressions/lambda.lazyBodies.txt | 33 ++ .../lambdaAndAnonymousFunction.lazyBodies.txt | 4 + .../expressions/locals.lazyBodies.txt | 2 + .../expressions/modifications.lazyBodies.txt | 4 + .../expressions/namedArgument.lazyBodies.txt | 3 + .../expressions/nullability.lazyBodies.txt | 3 + .../qualifierWithTypeArguments.lazyBodies.txt | 2 + .../expressions/simpleReturns.lazyBodies.txt | 3 + .../expressions/super.lazyBodies.txt | 21 + .../expressions/these.lazyBodies.txt | 18 + .../rawBuilder/expressions/try.lazyBodies.txt | 2 + .../expressions/typeOperators.lazyBodies.txt | 7 + .../expressions/unary.lazyBodies.txt | 23 ++ .../expressions/variables.lazyBodies.txt | 2 + .../expressions/while.lazyBodies.txt | 3 + ...AbstractRawFirBuilderLazyBodiesTestCase.kt | 20 + .../builder/AbstractRawFirBuilderTestCase.kt | 4 +- ...FirBuilderLazyBodiesTestCaseGenerated.java | 385 ++++++++++++++++++ .../generators/tests/GenerateCompilerTests.kt | 4 + 62 files changed, 1474 insertions(+), 2 deletions(-) create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/F.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/NestedOfAliasedType.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/NestedSuperType.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/complexTypes.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/constructorInObject.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/constructorOfAnonymousObject.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/functionWithBothOldAndNewSyntaxContractDescription.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/propertyAccessorsContractDescription.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/simpleFunctionsContractDescription.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/oldSyntax/contractDescription.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/derivedClass.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/emptyAnonymousObject.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/enums.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/enums2.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectActual.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/functionTypes.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/genericFunctions.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/genericProperty.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/nestedClass.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/noPrimaryConstructor.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleClass.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleFun.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleTypeAlias.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeAliasWithGeneric.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeParameterVsNested.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeParameters.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/where.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/annotated.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/arrayAccess.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/arrayAssignment.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/branches.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/callableReferences.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/calls.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/classReference.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/collectionLiterals.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/destructuring.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/for.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/genericCalls.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/in.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/inBrackets.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/init.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/labelForInfix.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/lambda.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/lambdaAndAnonymousFunction.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/locals.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/modifications.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/namedArgument.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/nullability.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/qualifierWithTypeArguments.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/simpleReturns.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/super.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/these.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/try.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/typeOperators.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/unary.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/variables.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/while.lazyBodies.txt create mode 100644 compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderLazyBodiesTestCase.kt create mode 100644 compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/F.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/F.lazyBodies.txt new file mode 100644 index 00000000000..c6b3ab5716e --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/F.lazyBodies.txt @@ -0,0 +1,13 @@ +FILE: F.kt + public? open class A : R|kotlin/Any| { + public? constructor(): R|A| { + super() + } + + } + public? final? class B : A { + public? constructor(): R|B| { + super<>() + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/NestedOfAliasedType.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/NestedOfAliasedType.lazyBodies.txt new file mode 100644 index 00000000000..e5f4290faa3 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/NestedOfAliasedType.lazyBodies.txt @@ -0,0 +1,28 @@ +FILE: NestedOfAliasedType.kt + public? abstract class A : R|kotlin/Any| { + public? constructor(): R|A| { + super() + } + + public? abstract class Nested : R|kotlin/Any| { + public? constructor(): R|A.Nested| { + super() + } + + } + + } + public? final typealias TA = A + public? final? class B : TA { + public? constructor(): R|B| { + super() + } + + public? final? class NestedInB : Nested { + public? constructor(): R|B.NestedInB| { + super() + } + + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/NestedSuperType.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/NestedSuperType.lazyBodies.txt new file mode 100644 index 00000000000..c317afc75d0 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/NestedSuperType.lazyBodies.txt @@ -0,0 +1,34 @@ +FILE: NestedSuperType.kt + public? abstract class My : R|kotlin/Any| { + public? constructor(): R|p/My| { + super() + } + + public? abstract class NestedOne : My { + public? constructor(): R|p/My.NestedOne| { + super() + } + + public? abstract class NestedTwo : NestedOne { + public? constructor(): R|p/My.NestedOne.NestedTwo| { + super() + } + + } + + } + + } + public? final? class Your : My { + public? constructor(): R|p/Your| { + super() + } + + public? final? class NestedThree : NestedOne { + public? constructor(): R|p/Your.NestedThree| { + super() + } + + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.lazyBodies.txt new file mode 100644 index 00000000000..b7766eb109a --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.lazyBodies.txt @@ -0,0 +1,55 @@ +FILE: annotation.kt + @Target(AnnotationTarget#.ANNOTATION_CLASS#) public? final? annotation class base : R|kotlin/Annotation| { + public? constructor(): R|base| { + super() + } + + } + @base() public? final? annotation class derived : R|kotlin/Annotation| { + public? constructor(): R|derived| { + super() + } + + } + @base() public? final? class correct : R|kotlin/Any| { + public? constructor(@base() x: Int): R|correct| { + super() + } + + @base() public? final? val x: Int = R|/x| + public? get(): Int + + @base() public? constructor(): R|correct| { + this(IntegerLiteral(0)) + } + + } + @base() public? final? enum class My : R|kotlin/Enum| { + private constructor(): R|My| { + super|>() + } + + @base() public final static enum entry FIRST: R|My| = @base() object : R|My| { + private constructor(): R|| { + super() + } + + } + + @base() public final static enum entry SECOND: R|My| = @base() object : R|My| { + private constructor(): R|| { + super() + } + + } + + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|My| { + } + + } + @base() public? final? fun foo(@base() y: @base() Int): Int { LAZY_BLOCK } + @base() public? final? val z: = IntegerLiteral(0) + public? get(): diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/complexTypes.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/complexTypes.lazyBodies.txt new file mode 100644 index 00000000000..421e8eb7b9c --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/complexTypes.lazyBodies.txt @@ -0,0 +1,19 @@ +FILE: complexTypes.kt + public? final? class C : R|kotlin/Any| { + public? constructor(): R|a/b/C| { + super() + } + + public? final? inner class D : R|kotlin/Any| { + public? constructor(): R|a/b/C.D| { + super() + } + + } + + } + public? final? interface Test : R|kotlin/Any| { + public? final? val x: a.b.C.D, *> + public? get(): a.b.C.D, *> + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/constructorInObject.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/constructorInObject.lazyBodies.txt new file mode 100644 index 00000000000..cc7128cace8 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/constructorInObject.lazyBodies.txt @@ -0,0 +1,54 @@ +FILE: constructorInObject.kt + public? final? object A : R|kotlin/Any| { + public? constructor(): R|A| { + super() + } + + init { + } + + } + public? final? enum class B : R|kotlin/Enum| { + private constructor(): R|B| { + super|>() + } + + public final static enum entry X: R|B| = object : R|B| { + private constructor(): R|| { + super() + } + + public? constructor(): R|| { + super() + } + + } + + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|B| { + } + + } + public? final? class C : R|kotlin/Any| { + public? constructor(): R|C| { + super() + } + + public? final? companion object Companion : R|kotlin/Any| { + public? constructor(): R|C.Companion| { + super() + } + + } + + } + public? final? val anonObject: = object : R|kotlin/Any| { + public? constructor(): R|| { + super() + } + + } + + public? get(): diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/constructorOfAnonymousObject.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/constructorOfAnonymousObject.lazyBodies.txt new file mode 100644 index 00000000000..a90fd5b27d0 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/constructorOfAnonymousObject.lazyBodies.txt @@ -0,0 +1,2 @@ +FILE: constructorOfAnonymousObject.kt + private final? fun resolveAccessorCall(suspendPropertyDescriptor: PropertyDescriptor, context: TranslationContext): ResolvedCall { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/functionWithBothOldAndNewSyntaxContractDescription.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/functionWithBothOldAndNewSyntaxContractDescription.lazyBodies.txt new file mode 100644 index 00000000000..0ff623f325d --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/functionWithBothOldAndNewSyntaxContractDescription.lazyBodies.txt @@ -0,0 +1,6 @@ +FILE: functionWithBothOldAndNewSyntaxContractDescription.kt + public? final? fun test1(s: String?): R|kotlin/Unit| + [Contract description] < + returnsNotNull#() + > + { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/propertyAccessorsContractDescription.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/propertyAccessorsContractDescription.lazyBodies.txt new file mode 100644 index 00000000000..47194821a14 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/propertyAccessorsContractDescription.lazyBodies.txt @@ -0,0 +1,51 @@ +FILE: propertyAccessorsContractDescription.kt + public? final? class MyClass : R|kotlin/Any| { + public? constructor(): R|MyClass| { + super() + } + + public? final? var myInt: Int = IntegerLiteral(0) + public? get(): Int + [Contract description] < + returnsNotNull#() + > + { LAZY_BLOCK } + public? set(value: Int): R|kotlin/Unit| { LAZY_BLOCK } + + } + public? final? class AnotherClass : R|kotlin/Any| { + public? constructor(multiplier: Int): R|AnotherClass| { + super() + } + + public? final? var anotherInt: Int = IntegerLiteral(0) + public? get(): Int + [Contract description] < + returnsNotNull#() + > + { LAZY_BLOCK } + public? set(value: Int): R|kotlin/Unit| + [Contract description] < + returns#() + > + { LAZY_BLOCK } + + } + public? final? class SomeClass : R|kotlin/Any| { + public? constructor(multiplier: Int?): R|SomeClass| { + super() + } + + public? final? var someInt: Int = IntegerLiteral(0) + public? get(): Int + [Contract description] < + returnsNotNull#() + > + { LAZY_BLOCK } + public? set(value: Int): R|kotlin/Unit| + [Contract description] < + returns#().implies#(!=(value#, Null(null))) + > + { LAZY_BLOCK } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/simpleFunctionsContractDescription.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/simpleFunctionsContractDescription.lazyBodies.txt new file mode 100644 index 00000000000..032c427fc03 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/simpleFunctionsContractDescription.lazyBodies.txt @@ -0,0 +1,12 @@ +FILE: simpleFunctionsContractDescription.kt + public? final? fun test1(s: MyClass?): R|kotlin/Unit| + [Contract description] < + returns#().implies#(!=(s#, Null(null))), + returns#().implies#((s# is MySubClass)) + > + { LAZY_BLOCK } + public? final? fun test2(): R|kotlin/Unit| + [Contract description] < + returnsNotNull#() + > + { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/oldSyntax/contractDescription.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/oldSyntax/contractDescription.lazyBodies.txt new file mode 100644 index 00000000000..93c3e8b469e --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/oldSyntax/contractDescription.lazyBodies.txt @@ -0,0 +1,11 @@ +FILE: contractDescription.kt + public? final? fun test_1(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun test_2(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? var test_3: Int = IntegerLiteral(1) + public? get(): Int { LAZY_BLOCK } + public? set(value: Int): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun test_4(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun test_5(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun test_6(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun test_7(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun test_8(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/derivedClass.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/derivedClass.lazyBodies.txt new file mode 100644 index 00000000000..ba56e828eff --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/derivedClass.lazyBodies.txt @@ -0,0 +1,17 @@ +FILE: derivedClass.kt + public? open class Base : R|kotlin/Any| { + public? constructor(x: T): R|Base| { + super() + } + + public? final? val x: T = R|/x| + public? get(): T + + } + public? final? class Derived : Base { + public? constructor(x: T): R|Derived| { + super>(x#) + } + + } + public? final? fun create(x: T): Derived { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/emptyAnonymousObject.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/emptyAnonymousObject.lazyBodies.txt new file mode 100644 index 00000000000..3c1daf24e84 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/emptyAnonymousObject.lazyBodies.txt @@ -0,0 +1,2 @@ +FILE: emptyAnonymousObject.kt + public? final? fun test(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/enums.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/enums.lazyBodies.txt new file mode 100644 index 00000000000..a7f034702bf --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/enums.lazyBodies.txt @@ -0,0 +1,142 @@ +FILE: enums.kt + public? final? enum class Order : R|kotlin/Enum| { + private constructor(): R|Order| { + super|>() + } + + public final static enum entry FIRST: R|Order| + public final static enum entry SECOND: R|Order| + public final static enum entry THIRD: R|Order| + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|Order| { + } + + } + public? final? enum class Planet : R|kotlin/Enum| { + public? constructor(m: Double, r: Double): R|Planet| { + super|>() + } + + public? final? val m: Double = R|/m| + public? get(): Double + + internal final? val r: Double = R|/r| + internal get(): Double + + public final static enum entry MERCURY: R|Planet| = object : R|Planet| { + private constructor(): R|| { + super(Double(1.0), Double(2.0)) + } + + public? open? override fun sayHello(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public final static enum entry VENERA: R|Planet| = object : R|Planet| { + private constructor(): R|| { + super(Double(3.0), Double(4.0)) + } + + public? open? override fun sayHello(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public final static enum entry EARTH: R|Planet| = object : R|Planet| { + private constructor(): R|| { + super(Double(5.0), Double(6.0)) + } + + public? open? override fun sayHello(): R|kotlin/Unit| { LAZY_BLOCK } + + } + + public? final? val g: Double = G#.times#(m#).div#(r#.times#(r#)) + public? get(): Double + + public? abstract fun sayHello(): R|kotlin/Unit| + + public? final? companion object Companion : R|kotlin/Any| { + private constructor(): R|Planet.Companion| { + super() + } + + public? final? const val G: = Double(6.67E-11) + public? get(): + + } + + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|Planet| { + } + + } + public? final? enum class PseudoInsn : R|kotlin/Enum| { + public? constructor(signature: String = String(()V)): R|PseudoInsn| { + super|>() + } + + public? final? val signature: String = R|/signature| + public? get(): String + + public final static enum entry FIX_STACK_BEFORE_JUMP: R|PseudoInsn| = object : R|PseudoInsn| { + private constructor(): R|| { + super() + } + + } + + public final static enum entry FAKE_ALWAYS_TRUE_IFEQ: R|PseudoInsn| = object : R|PseudoInsn| { + private constructor(): R|| { + super(String(()I)) + } + + } + + public final static enum entry FAKE_ALWAYS_FALSE_IFEQ: R|PseudoInsn| = object : R|PseudoInsn| { + private constructor(): R|| { + super(String(()I)) + } + + } + + public final static enum entry SAVE_STACK_BEFORE_TRY: R|PseudoInsn| = object : R|PseudoInsn| { + private constructor(): R|| { + super() + } + + } + + public final static enum entry RESTORE_STACK_IN_TRY_CATCH: R|PseudoInsn| = object : R|PseudoInsn| { + private constructor(): R|| { + super() + } + + } + + public final static enum entry STORE_NOT_NULL: R|PseudoInsn| = object : R|PseudoInsn| { + private constructor(): R|| { + super() + } + + } + + public final static enum entry AS_NOT_NULL: R|PseudoInsn| = object : R|PseudoInsn| { + private constructor(): R|| { + super(String((Ljava/lang/Object;)Ljava/lang/Object;)) + } + + } + + public? final? fun emit(): R|kotlin/Unit| { LAZY_BLOCK } + + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|PseudoInsn| { + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/enums2.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/enums2.lazyBodies.txt new file mode 100644 index 00000000000..cc70152eafd --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/enums2.lazyBodies.txt @@ -0,0 +1,50 @@ +FILE: enums2.kt + public? final? interface Some : R|kotlin/Any| { + } + public? final? object O1 : Some { + private constructor(): R|O1| { + super<>() + } + + } + public? final? object O2 : Some { + private constructor(): R|O2| { + super<>() + } + + } + public? final? enum class SomeEnum : R|kotlin/Enum| { + public? constructor(x: Some): R|SomeEnum| { + super|>() + } + + public? final? val x: Some = R|/x| + public? get(): Some + + public final static enum entry FIRST: R|SomeEnum| = object : R|SomeEnum| { + private constructor(): R|| { + super(O1#) + } + + public? open? override fun check(y: Some): Boolean { LAZY_BLOCK } + + } + + public final static enum entry SECOND: R|SomeEnum| = object : R|SomeEnum| { + private constructor(): R|| { + super(O2#) + } + + public? open? override fun check(y: Some): Boolean { LAZY_BLOCK } + + } + + public? abstract fun check(y: Some): Boolean + + public final static fun values(): R|kotlin/Array| { + } + + public final static fun valueOf(value: R|kotlin/String|): R|SomeEnum| { + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectActual.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectActual.lazyBodies.txt new file mode 100644 index 00000000000..07e22009056 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectActual.lazyBodies.txt @@ -0,0 +1,19 @@ +FILE: expectActual.kt + public? final? expect class MyClass : R|kotlin/Any| { + public? expect constructor(): R|MyClass| { + super() + } + + } + public? final? expect fun foo(): String + public? final? expect val x: Int + public? get(): Int + public? final? actual class MyClass : R|kotlin/Any| { + public? constructor(): R|MyClass| { + super() + } + + } + public? final? actual fun foo(): { LAZY_BLOCK } + public? final? actual val x: = IntegerLiteral(42) + public? get(): diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/functionTypes.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/functionTypes.lazyBodies.txt new file mode 100644 index 00000000000..e711d763e44 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/functionTypes.lazyBodies.txt @@ -0,0 +1,4 @@ +FILE: functionTypes.kt + public? final? fun simpleRun(f: ( (T) -> Unit )): Unit { LAZY_BLOCK } + public? final? fun List.simpleMap(f: ( (T) -> R )): R { LAZY_BLOCK } + public? final? fun simpleWith(t: T, f: ( T.() -> Unit )): Unit { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/genericFunctions.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/genericFunctions.lazyBodies.txt new file mode 100644 index 00000000000..a2fa23638dd --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/genericFunctions.lazyBodies.txt @@ -0,0 +1,12 @@ +FILE: genericFunctions.kt + public? final? interface Any : R|kotlin/Any| { + } + public? final? inline fun Any.safeAs(): T? { LAZY_BLOCK } + public? abstract class Summator : R|kotlin/Any| { + public? constructor(): R|Summator| { + super() + } + + public? abstract fun plus(first: T, second: T): T + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/genericProperty.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/genericProperty.lazyBodies.txt new file mode 100644 index 00000000000..866d3e644e1 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/genericProperty.lazyBodies.txt @@ -0,0 +1,4 @@ +FILE: genericProperty.kt + public? final? fun genericFoo(): T { LAZY_BLOCK } + public? final? val T.generic: T + public? get(): T { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/nestedClass.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/nestedClass.lazyBodies.txt new file mode 100644 index 00000000000..95071a2c119 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/nestedClass.lazyBodies.txt @@ -0,0 +1,30 @@ +FILE: nestedClass.kt + public? abstract class Base : R|kotlin/Any| { + public? constructor(s: String): R|Base| { + super() + } + + public? final? val s: String = R|/s| + public? get(): String + + } + public? final? class Outer : R|kotlin/Any| { + public? constructor(): R|Outer| { + super() + } + + public? final? class Derived : Base { + public? constructor(s: String): R|Outer.Derived| { + super(s#) + } + + } + + public? final? object Obj : Base { + private constructor(): R|Outer.Obj| { + super(String()) + } + + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/noPrimaryConstructor.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/noPrimaryConstructor.lazyBodies.txt new file mode 100644 index 00000000000..8db290d6f8d --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/noPrimaryConstructor.lazyBodies.txt @@ -0,0 +1,12 @@ +FILE: noPrimaryConstructor.kt + public? final? class NoPrimary : R|kotlin/Any| { + public? final? val x: String + public? get(): String + + public? constructor(x: String): R|NoPrimary| { LAZY_BLOCK } + + public? constructor(): R|NoPrimary| { + this(String()) + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleClass.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleClass.lazyBodies.txt new file mode 100644 index 00000000000..ed8b14e3162 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleClass.lazyBodies.txt @@ -0,0 +1,33 @@ +FILE: simpleClass.kt + public? final? interface SomeInterface : R|kotlin/Any| { + public? final? fun foo(x: Int, y: String): String + + public? final? val bar: Boolean + public? get(): Boolean + + } + public? final? class SomeClass : SomeInterface { + public? constructor(): R|SomeClass| { + super<>() + } + + private final? val baz: = IntegerLiteral(42) + private get(): + + public? open? override fun foo(x: Int, y: String): String { LAZY_BLOCK } + + public? open? override var bar: Boolean + public? get(): Boolean { LAZY_BLOCK } + public? set(value: Boolean): R|kotlin/Unit| { LAZY_BLOCK } + + public? final? lateinit var fau: Double + public? get(): Double + public? set(value: Double): R|kotlin/Unit| + + } + public? final? inline class InlineClass : R|kotlin/Any| { + public? constructor(): R|InlineClass| { + super() + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleFun.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleFun.lazyBodies.txt new file mode 100644 index 00000000000..bc6dc6e2685 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleFun.lazyBodies.txt @@ -0,0 +1,3 @@ +FILE: simpleFun.kt + public? final? fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? suspend fun bar(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleTypeAlias.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleTypeAlias.lazyBodies.txt new file mode 100644 index 00000000000..70eb461eaa2 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleTypeAlias.lazyBodies.txt @@ -0,0 +1,10 @@ +FILE: simpleTypeAlias.kt + public? final? interface B : R|kotlin/Any| { + } + public? final typealias C = B + public? final? class D : C { + public? constructor(): R|D| { + super<>() + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeAliasWithGeneric.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeAliasWithGeneric.lazyBodies.txt new file mode 100644 index 00000000000..b6be39cce45 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeAliasWithGeneric.lazyBodies.txt @@ -0,0 +1,16 @@ +FILE: typeAliasWithGeneric.kt + public? open class A : R|kotlin/Any| { + public? constructor(): R|A| { + super() + } + + } + public? final? interface B : R|kotlin/Any| { + } + public? final typealias C = B + public? final? class D : C { + public? constructor(): R|D| { + super<>() + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeParameterVsNested.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeParameterVsNested.lazyBodies.txt new file mode 100644 index 00000000000..a44528deb24 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeParameterVsNested.lazyBodies.txt @@ -0,0 +1,34 @@ +FILE: typeParameterVsNested.kt + public? final? interface Some : R|kotlin/Any| { + } + public? abstract class My : R|kotlin/Any| { + public? constructor(): R|test/My| { + super() + } + + public? final? inner class T : R|kotlin/Any| { + public? constructor(): R|test/My.T| { + super() + } + + } + + public? abstract val x: T + public? get(): T + + public? abstract fun foo(arg: T): R|kotlin/Unit| + + public? abstract val y: My.T + public? get(): My.T + + public? abstract val z: test.My.T + public? get(): test.My.T + + public? final? class Some : T { + public? constructor(): R|test/My.Some| { + super() + } + + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeParameters.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeParameters.lazyBodies.txt new file mode 100644 index 00000000000..f2520204f2a --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeParameters.lazyBodies.txt @@ -0,0 +1,25 @@ +FILE: typeParameters.kt + public? final? interface List : R|kotlin/Any| { + public? final? operator fun get(index: Int): T + + public? final? infix fun concat(other: List): List + + } + public? final typealias StringList = List + public? final typealias AnyList = List<*> + public? abstract class AbstractList : List { + public? constructor(): R|AbstractList| { + super<>() + } + + } + public? final? class SomeList : AbstractList { + public? constructor(): R|SomeList| { + super>() + } + + public? open? override fun get(index: Int): Int { LAZY_BLOCK } + + public? open? override fun concat(other: List): List { LAZY_BLOCK } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/where.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/where.lazyBodies.txt new file mode 100644 index 00000000000..0ac732679f3 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/where.lazyBodies.txt @@ -0,0 +1,11 @@ +FILE: where.kt + public? final? interface A : R|kotlin/Any| { + } + public? final? interface B : R|kotlin/Any| { + } + public? final? class C : R|kotlin/Any| { + public? constructor(): R|C| { + super() + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/annotated.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/annotated.lazyBodies.txt new file mode 100644 index 00000000000..05ff58f92e8 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/annotated.lazyBodies.txt @@ -0,0 +1,17 @@ +FILE: annotated.kt + @Target(AnnotationTarget#.EXPRESSION#) @Retention(AnnotationRetention#.SOURCE#) public? final? annotation class Ann : R|kotlin/Annotation| { + public? constructor(): R|Ann| { + super() + } + + } + public? final? fun foo(arg: Int): Int { LAZY_BLOCK } + public? final? data class Two : R|kotlin/Any| { + public? constructor(x: Int, y: Int): R|Two| { + super() + } + + public final fun copy(): R|Two| + + } + public? final? fun bar(two: Two): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/arrayAccess.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/arrayAccess.lazyBodies.txt new file mode 100644 index 00000000000..066ceaaeb17 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/arrayAccess.lazyBodies.txt @@ -0,0 +1,14 @@ +FILE: arrayAccess.kt + public? final? val p: = IntegerLiteral(0) + public? get(): + public? final? fun foo(): { LAZY_BLOCK } + public? final? class Wrapper : R|kotlin/Any| { + public? constructor(v: IntArray): R|Wrapper| { + super() + } + + public? final? val v: IntArray = R|/v| + public? get(): IntArray + + } + public? final? fun test(a: IntArray, w: Wrapper): { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/arrayAssignment.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/arrayAssignment.lazyBodies.txt new file mode 100644 index 00000000000..7d8da765ca4 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/arrayAssignment.lazyBodies.txt @@ -0,0 +1,4 @@ +FILE: arrayAssignment.kt + public? final? fun test(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun foo(): { LAZY_BLOCK } + public? final? fun test2(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/branches.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/branches.lazyBodies.txt new file mode 100644 index 00000000000..2a10cbf003f --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/branches.lazyBodies.txt @@ -0,0 +1,5 @@ +FILE: branches.kt + public? final? fun foo(a: Int, b: Int): { LAZY_BLOCK } + public? final? fun bar(a: Double, b: Double): Double { LAZY_BLOCK } + public? final? fun baz(a: Long, b: Long): Long { LAZY_BLOCK } + public? final? fun grade(g: Int): String { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/callableReferences.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/callableReferences.lazyBodies.txt new file mode 100644 index 00000000000..3b3653dfbd7 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/callableReferences.lazyBodies.txt @@ -0,0 +1,30 @@ +FILE: callableReferences.kt + public? final? class A : R|kotlin/Any| { + public? constructor(): R|A| { + super() + } + + public? final? fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? final? val bar: = IntegerLiteral(0) + public? get(): + + } + public? final? fun A.qux(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun baz(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? val test1: = A#()::foo# + public? get(): + public? final? val test2: = A#()::bar# + public? get(): + public? final? val test3: = A#()::qux# + public? get(): + public? final? val test4: = A#::foo# + public? get(): + public? final? val test5: = A#::bar# + public? get(): + public? final? val test6: = A#::qux# + public? get(): + public? final? val test7: = ::baz# + public? get(): + public? final? val test8: = A#?::foo# + public? get(): diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/calls.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/calls.lazyBodies.txt new file mode 100644 index 00000000000..4c74d63bf1a --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/calls.lazyBodies.txt @@ -0,0 +1,22 @@ +FILE: calls.kt + public? final? infix fun distance(x: Int, y: Int): { LAZY_BLOCK } + public? final? fun test(): Int { LAZY_BLOCK } + public? final? fun testRegular(): Int { LAZY_BLOCK } + public? final? class My : R|kotlin/Any| { + public? constructor(x: Int): R|My| { + super() + } + + public? final? var x: Int = R|/x| + public? get(): Int + public? set(value: Int): R|kotlin/Unit| + + public? final? operator fun invoke(): { LAZY_BLOCK } + + public? final? fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? final? fun copy(): { LAZY_BLOCK } + + } + public? final? fun testInvoke(): Int { LAZY_BLOCK } + public? final? fun testQualified(first: My, second: My?): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/classReference.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/classReference.lazyBodies.txt new file mode 100644 index 00000000000..29f909a6e91 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/classReference.lazyBodies.txt @@ -0,0 +1,8 @@ +FILE: classReference.kt + public? final? class A : R|kotlin/Any| { + public? constructor(): R|test/A| { + super() + } + + } + public? final? fun test(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/collectionLiterals.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/collectionLiterals.lazyBodies.txt new file mode 100644 index 00000000000..41bb97c524b --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/collectionLiterals.lazyBodies.txt @@ -0,0 +1,52 @@ +FILE: collectionLiterals.kt + public? final? annotation class Ann1 : R|kotlin/Annotation| { + public? constructor(arr: IntArray): R|Ann1| { + super() + } + + public? final? val arr: IntArray = R|/arr| + public? get(): IntArray + + } + public? final? annotation class Ann2 : R|kotlin/Annotation| { + public? constructor(arr: DoubleArray): R|Ann2| { + super() + } + + public? final? val arr: DoubleArray = R|/arr| + public? get(): DoubleArray + + } + public? final? annotation class Ann3 : R|kotlin/Annotation| { + public? constructor(arr: Array): R|Ann3| { + super() + } + + public? final? val arr: Array = R|/arr| + public? get(): Array + + } + @Ann1(()) @Ann2(()) @Ann3(()) public? final? class Zero : R|kotlin/Any| { + public? constructor(): R|Zero| { + super() + } + + } + @Ann1((IntegerLiteral(1), IntegerLiteral(2))) public? final? class First : R|kotlin/Any| { + public? constructor(): R|First| { + super() + } + + } + @Ann2((Double(3.14))) public? final? class Second : R|kotlin/Any| { + public? constructor(): R|Second| { + super() + } + + } + @Ann3((String(Alpha), String(Omega))) public? final? class Third : R|kotlin/Any| { + public? constructor(): R|Third| { + super() + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/destructuring.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/destructuring.lazyBodies.txt new file mode 100644 index 00000000000..448ffb13fdc --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/destructuring.lazyBodies.txt @@ -0,0 +1,25 @@ +FILE: destructuring.kt + public? final? data class Some : R|kotlin/Any| { + public? constructor(first: Int, second: Double, third: String): R|Some| { + super() + } + + public? final? val first: Int = R|/first| + public? get(): Int + + public? final? val second: Double = R|/second| + public? get(): Double + + public? final? val third: String = R|/third| + public? get(): String + + public final fun component1(): Int + + public final fun component2(): Double + + public final fun component3(): String + + public final fun copy(first: Int = this@R|/Some|.R|/Some.first|, second: Double = this@R|/Some|.R|/Some.second|, third: String = this@R|/Some|.R|/Some.third|): R|Some| + + } + public? final? fun foo(some: Some): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/for.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/for.lazyBodies.txt new file mode 100644 index 00000000000..1d9267964c8 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/for.lazyBodies.txt @@ -0,0 +1,24 @@ +FILE: for.kt + public? final? fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun fooLabeled(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun bar(list: List): R|kotlin/Unit| { LAZY_BLOCK } + public? final? data class Some : R|kotlin/Any| { + public? constructor(x: Int, y: Int): R|Some| { + super() + } + + public? final? val x: Int = R|/x| + public? get(): Int + + public? final? val y: Int = R|/y| + public? get(): Int + + public final fun component1(): Int + + public final fun component2(): Int + + public final fun copy(x: Int = this@R|/Some|.R|/Some.x|, y: Int = this@R|/Some|.R|/Some.y|): R|Some| + + } + public? final? fun baz(set: Set): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun withParameter(list: List): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/genericCalls.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/genericCalls.lazyBodies.txt new file mode 100644 index 00000000000..aaf1991beee --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/genericCalls.lazyBodies.txt @@ -0,0 +1,3 @@ +FILE: genericCalls.kt + public? final? fun nullableValue(): T? { LAZY_BLOCK } + public? final? fun test(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/in.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/in.lazyBodies.txt new file mode 100644 index 00000000000..f436c82f62a --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/in.lazyBodies.txt @@ -0,0 +1,2 @@ +FILE: in.kt + public? final? fun foo(x: Int, y: Int, c: Collection): { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/inBrackets.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/inBrackets.lazyBodies.txt new file mode 100644 index 00000000000..88074110872 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/inBrackets.lazyBodies.txt @@ -0,0 +1,2 @@ +FILE: inBrackets.kt + public? final? fun test(e: ( Int.() -> String )): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/init.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/init.lazyBodies.txt new file mode 100644 index 00000000000..3c557658477 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/init.lazyBodies.txt @@ -0,0 +1,14 @@ +FILE: init.kt + public? final? class WithInit : R|kotlin/Any| { + public? constructor(x: Int): R|WithInit| { + super() + } + + public? final? val x: Int + public? get(): Int + + init { + this#.x# = x# + } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/labelForInfix.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/labelForInfix.lazyBodies.txt new file mode 100644 index 00000000000..11109db4ffd --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/labelForInfix.lazyBodies.txt @@ -0,0 +1,2 @@ +FILE: labelForInfix.kt + public? final? fun main(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/lambda.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/lambda.lazyBodies.txt new file mode 100644 index 00000000000..b87bd642bc6 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/lambda.lazyBodies.txt @@ -0,0 +1,33 @@ +FILE: lambda.kt + public? final? data class Tuple : R|kotlin/Any| { + public? constructor(x: Int, y: Int): R|Tuple| { + super() + } + + public? final? val x: Int = R|/x| + public? get(): Int + + public? final? val y: Int = R|/y| + public? get(): Int + + public final fun component1(): Int + + public final fun component2(): Int + + public final fun copy(x: Int = this@R|/Tuple|.R|/Tuple.x|, y: Int = this@R|/Tuple|.R|/Tuple.y|): R|Tuple| + + } + public? final? inline fun use(f: ( (Tuple) -> Int )): { LAZY_BLOCK } + public? final? fun foo(): Int { LAZY_BLOCK } + public? final? fun bar(): Int { LAZY_BLOCK } + public? final? fun test(list: List): R|kotlin/Unit| { LAZY_BLOCK } + public? final? val simple: = fun .(): { + ^ Unit + } + + public? get(): + public? final? val another: = fun .(): { + IntegerLiteral(42) + } + + public? get(): diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/lambdaAndAnonymousFunction.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/lambdaAndAnonymousFunction.lazyBodies.txt new file mode 100644 index 00000000000..6326813ed34 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/lambdaAndAnonymousFunction.lazyBodies.txt @@ -0,0 +1,4 @@ +FILE: lambdaAndAnonymousFunction.kt + public? final? fun run(block: ( () -> T )): T { LAZY_BLOCK } + public? final? fun test_1(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun test_2(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/locals.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/locals.lazyBodies.txt new file mode 100644 index 00000000000..22224cbf9fa --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/locals.lazyBodies.txt @@ -0,0 +1,2 @@ +FILE: locals.kt + public? final? fun withLocals(p: Int): Int { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/modifications.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/modifications.lazyBodies.txt new file mode 100644 index 00000000000..aeff3543c83 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/modifications.lazyBodies.txt @@ -0,0 +1,4 @@ +FILE: modifications.kt + public? final? fun simple(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun List.modify(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun Any.modify(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/namedArgument.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/namedArgument.lazyBodies.txt new file mode 100644 index 00000000000..ac0f4552e83 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/namedArgument.lazyBodies.txt @@ -0,0 +1,3 @@ +FILE: namedArgument.kt + public? final? fun foo(first: String = String(), second: Boolean = Boolean(true), third: Double = Double(3.1415)): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun test(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/nullability.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/nullability.lazyBodies.txt new file mode 100644 index 00000000000..e2b6e94cd49 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/nullability.lazyBodies.txt @@ -0,0 +1,3 @@ +FILE: nullability.kt + public? final? fun orFourtyTwo(arg: Int?): { LAZY_BLOCK } + public? final? fun bang(arg: Int?): { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/qualifierWithTypeArguments.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/qualifierWithTypeArguments.lazyBodies.txt new file mode 100644 index 00000000000..48e761ac9e3 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/qualifierWithTypeArguments.lazyBodies.txt @@ -0,0 +1,2 @@ +FILE: qualifierWithTypeArguments.kt + public? final? fun test(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/simpleReturns.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/simpleReturns.lazyBodies.txt new file mode 100644 index 00000000000..0aa85cb4b19 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/simpleReturns.lazyBodies.txt @@ -0,0 +1,3 @@ +FILE: simpleReturns.kt + public? final? fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun bar(): String { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/super.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/super.lazyBodies.txt new file mode 100644 index 00000000000..8db0416dff9 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/super.lazyBodies.txt @@ -0,0 +1,21 @@ +FILE: super.kt + public? final? interface A : R|kotlin/Any| { + public? final? fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } + public? final? interface B : R|kotlin/Any| { + public? final? fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + public? final? fun bar(): R|kotlin/Unit| { LAZY_BLOCK } + + } + public? final? class C : A, B { + public? constructor(): R|C| { + super<>() + } + + public? open? override fun bar(): R|kotlin/Unit| { LAZY_BLOCK } + + public? open? override fun foo(): R|kotlin/Unit| { LAZY_BLOCK } + + } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/these.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/these.lazyBodies.txt new file mode 100644 index 00000000000..21e3268195c --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/these.lazyBodies.txt @@ -0,0 +1,18 @@ +FILE: these.kt + public? final? class Some : R|kotlin/Any| { + public? constructor(): R|Some| { + super() + } + + public? final? fun foo(): Int { LAZY_BLOCK } + + public? final? fun bar(): Int { LAZY_BLOCK } + + public? final? val instance: Some + public? get(): Some { LAZY_BLOCK } + + public? final? fun String.extension(): Int { LAZY_BLOCK } + + } + public? final? fun Some.extension(): { LAZY_BLOCK } + public? final? fun test(some: Some): Int { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/try.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/try.lazyBodies.txt new file mode 100644 index 00000000000..6280fd23fb0 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/try.lazyBodies.txt @@ -0,0 +1,2 @@ +FILE: try.kt + public? final? fun some(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/typeOperators.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/typeOperators.lazyBodies.txt new file mode 100644 index 00000000000..f9c1c3595f4 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/typeOperators.lazyBodies.txt @@ -0,0 +1,7 @@ +FILE: typeOperators.kt + public? final? interface IThing : R|kotlin/Any| { + } + public? final? fun test1(x: Any): { LAZY_BLOCK } + public? final? fun test2(x: Any): { LAZY_BLOCK } + public? final? fun test3(x: Any): { LAZY_BLOCK } + public? final? fun test4(x: Any): { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/unary.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/unary.lazyBodies.txt new file mode 100644 index 00000000000..e7181687c20 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/unary.lazyBodies.txt @@ -0,0 +1,23 @@ +FILE: unary.kt + public? final? fun test(): R|kotlin/Unit| { LAZY_BLOCK } + public? final? class X : R|kotlin/Any| { + public? constructor(i: Int): R|X| { + super() + } + + public? final? val i: Int = R|/i| + public? get(): Int + + } + public? final? fun test2(x: X): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun test3(arr: Array): R|kotlin/Unit| { LAZY_BLOCK } + public? final? class Y : R|kotlin/Any| { + public? constructor(arr: Array): R|Y| { + super() + } + + public? final? val arr: Array = R|/arr| + public? get(): Array + + } + public? final? fun test4(y: Y): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/variables.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/variables.lazyBodies.txt new file mode 100644 index 00000000000..8f5e176fedb --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/variables.lazyBodies.txt @@ -0,0 +1,2 @@ +FILE: variables.kt + public? final? fun foo(): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/while.lazyBodies.txt b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/while.lazyBodies.txt new file mode 100644 index 00000000000..51d688b5522 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/while.lazyBodies.txt @@ -0,0 +1,3 @@ +FILE: while.kt + public? final? fun foo(limit: Int): R|kotlin/Unit| { LAZY_BLOCK } + public? final? fun bar(limit: Int): R|kotlin/Unit| { LAZY_BLOCK } diff --git a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderLazyBodiesTestCase.kt b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderLazyBodiesTestCase.kt new file mode 100644 index 00000000000..56d2202954b --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderLazyBodiesTestCase.kt @@ -0,0 +1,20 @@ +/* + * Copyright 2010-2018 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.builder + +import org.jetbrains.kotlin.fir.FirRenderer +import org.jetbrains.kotlin.test.KotlinTestUtils +import java.io.File + +abstract class AbstractRawFirBuilderLazyBodiesTestCase : AbstractRawFirBuilderTestCase() { + override fun doRawFirTest(filePath: String) { + val file = createKtFile(filePath) + val firFile = file.toFirFile(stubMode = false, bodyStubMode = true) + val firFileDump = StringBuilder().also { FirRenderer(it).visitFile(firFile) }.toString() + val expectedPath = filePath.replace(".kt", ".lazyBodies.txt") + KotlinTestUtils.assertEqualsToFile(File(expectedPath), firFileDump) + } +} \ No newline at end of file diff --git a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt index ceea5da3033..c05cf8e84f1 100644 --- a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt +++ b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/AbstractRawFirBuilderTestCase.kt @@ -74,9 +74,9 @@ abstract class AbstractRawFirBuilderTestCase : KtParsingTestCase( } } - protected fun KtFile.toFirFile(stubMode: Boolean): FirFile { + protected fun KtFile.toFirFile(stubMode: Boolean, bodyStubMode: Boolean = false): FirFile { val session = FirSessionFactory.createEmptySession() - return RawFirBuilder(session, StubFirScopeProvider, stubMode).buildFirFile(this) + return RawFirBuilder(session, StubFirScopeProvider, stubMode, bodyStubMode).buildFirFile(this) } private fun FirElement.traverseChildren(result: MutableSet = hashSetOf()): MutableSet { diff --git a/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java new file mode 100644 index 00000000000..89ff228b7d8 --- /dev/null +++ b/compiler/fir/raw-fir/psi2fir/tests/org/jetbrains/kotlin/fir/builder/RawFirBuilderLazyBodiesTestCaseGenerated.java @@ -0,0 +1,385 @@ +/* + * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ + +package org.jetbrains.kotlin.fir.builder; + +import com.intellij.testFramework.TestDataPath; +import org.jetbrains.kotlin.test.JUnit3RunnerWithInners; +import org.jetbrains.kotlin.test.KotlinTestUtils; +import org.jetbrains.kotlin.test.TestMetadata; +import org.junit.runner.RunWith; + +import java.io.File; +import java.util.regex.Pattern; + +/** This class is generated by {@link org.jetbrains.kotlin.generators.tests.TestsPackage}. DO NOT MODIFY MANUALLY */ +@SuppressWarnings("all") +@TestMetadata("compiler/fir/raw-fir/psi2fir/testData/rawBuilder") +@TestDataPath("$PROJECT_ROOT") +@RunWith(JUnit3RunnerWithInners.class) +public class RawFirBuilderLazyBodiesTestCaseGenerated extends AbstractRawFirBuilderLazyBodiesTestCase { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doRawFirTest, this, testDataFilePath); + } + + public void testAllFilesPresentInRawBuilder() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/raw-fir/psi2fir/testData/rawBuilder"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @TestMetadata("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Declarations extends AbstractRawFirBuilderLazyBodiesTestCase { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doRawFirTest, this, testDataFilePath); + } + + public void testAllFilesPresentInDeclarations() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @TestMetadata("annotation.kt") + public void testAnnotation() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/annotation.kt"); + } + + @TestMetadata("complexTypes.kt") + public void testComplexTypes() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/complexTypes.kt"); + } + + @TestMetadata("constructorInObject.kt") + public void testConstructorInObject() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/constructorInObject.kt"); + } + + @TestMetadata("constructorOfAnonymousObject.kt") + public void testConstructorOfAnonymousObject() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/constructorOfAnonymousObject.kt"); + } + + @TestMetadata("derivedClass.kt") + public void testDerivedClass() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/derivedClass.kt"); + } + + @TestMetadata("emptyAnonymousObject.kt") + public void testEmptyAnonymousObject() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/emptyAnonymousObject.kt"); + } + + @TestMetadata("enums.kt") + public void testEnums() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/enums.kt"); + } + + @TestMetadata("enums2.kt") + public void testEnums2() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/enums2.kt"); + } + + @TestMetadata("expectActual.kt") + public void testExpectActual() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/expectActual.kt"); + } + + @TestMetadata("F.kt") + public void testF() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/F.kt"); + } + + @TestMetadata("functionTypes.kt") + public void testFunctionTypes() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/functionTypes.kt"); + } + + @TestMetadata("genericFunctions.kt") + public void testGenericFunctions() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/genericFunctions.kt"); + } + + @TestMetadata("genericProperty.kt") + public void testGenericProperty() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/genericProperty.kt"); + } + + @TestMetadata("nestedClass.kt") + public void testNestedClass() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/nestedClass.kt"); + } + + @TestMetadata("NestedOfAliasedType.kt") + public void testNestedOfAliasedType() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/NestedOfAliasedType.kt"); + } + + @TestMetadata("NestedSuperType.kt") + public void testNestedSuperType() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/NestedSuperType.kt"); + } + + @TestMetadata("noPrimaryConstructor.kt") + public void testNoPrimaryConstructor() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/noPrimaryConstructor.kt"); + } + + @TestMetadata("simpleClass.kt") + public void testSimpleClass() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleClass.kt"); + } + + @TestMetadata("simpleFun.kt") + public void testSimpleFun() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleFun.kt"); + } + + @TestMetadata("simpleTypeAlias.kt") + public void testSimpleTypeAlias() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/simpleTypeAlias.kt"); + } + + @TestMetadata("typeAliasWithGeneric.kt") + public void testTypeAliasWithGeneric() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeAliasWithGeneric.kt"); + } + + @TestMetadata("typeParameterVsNested.kt") + public void testTypeParameterVsNested() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeParameterVsNested.kt"); + } + + @TestMetadata("typeParameters.kt") + public void testTypeParameters() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/typeParameters.kt"); + } + + @TestMetadata("where.kt") + public void testWhere() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/where.kt"); + } + + @TestMetadata("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Contracts extends AbstractRawFirBuilderLazyBodiesTestCase { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doRawFirTest, this, testDataFilePath); + } + + public void testAllFilesPresentInContracts() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @TestMetadata("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class NewSyntax extends AbstractRawFirBuilderLazyBodiesTestCase { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doRawFirTest, this, testDataFilePath); + } + + public void testAllFilesPresentInNewSyntax() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @TestMetadata("functionWithBothOldAndNewSyntaxContractDescription.kt") + public void testFunctionWithBothOldAndNewSyntaxContractDescription() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/functionWithBothOldAndNewSyntaxContractDescription.kt"); + } + + @TestMetadata("propertyAccessorsContractDescription.kt") + public void testPropertyAccessorsContractDescription() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/propertyAccessorsContractDescription.kt"); + } + + @TestMetadata("simpleFunctionsContractDescription.kt") + public void testSimpleFunctionsContractDescription() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/newSyntax/simpleFunctionsContractDescription.kt"); + } + } + + @TestMetadata("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/oldSyntax") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class OldSyntax extends AbstractRawFirBuilderLazyBodiesTestCase { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doRawFirTest, this, testDataFilePath); + } + + public void testAllFilesPresentInOldSyntax() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/oldSyntax"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @TestMetadata("contractDescription.kt") + public void testContractDescription() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/declarations/contracts/oldSyntax/contractDescription.kt"); + } + } + } + } + + @TestMetadata("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions") + @TestDataPath("$PROJECT_ROOT") + @RunWith(JUnit3RunnerWithInners.class) + public static class Expressions extends AbstractRawFirBuilderLazyBodiesTestCase { + private void runTest(String testDataFilePath) throws Exception { + KotlinTestUtils.runTest(this::doRawFirTest, this, testDataFilePath); + } + + public void testAllFilesPresentInExpressions() throws Exception { + KotlinTestUtils.assertAllTestsPresentByMetadataWithExcluded(this.getClass(), new File("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions"), Pattern.compile("^(.+)\\.kt$"), null, true); + } + + @TestMetadata("annotated.kt") + public void testAnnotated() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/annotated.kt"); + } + + @TestMetadata("arrayAccess.kt") + public void testArrayAccess() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/arrayAccess.kt"); + } + + @TestMetadata("arrayAssignment.kt") + public void testArrayAssignment() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/arrayAssignment.kt"); + } + + @TestMetadata("branches.kt") + public void testBranches() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/branches.kt"); + } + + @TestMetadata("callableReferences.kt") + public void testCallableReferences() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/callableReferences.kt"); + } + + @TestMetadata("calls.kt") + public void testCalls() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/calls.kt"); + } + + @TestMetadata("classReference.kt") + public void testClassReference() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/classReference.kt"); + } + + @TestMetadata("collectionLiterals.kt") + public void testCollectionLiterals() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/collectionLiterals.kt"); + } + + @TestMetadata("destructuring.kt") + public void testDestructuring() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/destructuring.kt"); + } + + @TestMetadata("for.kt") + public void testFor() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/for.kt"); + } + + @TestMetadata("genericCalls.kt") + public void testGenericCalls() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/genericCalls.kt"); + } + + @TestMetadata("in.kt") + public void testIn() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/in.kt"); + } + + @TestMetadata("inBrackets.kt") + public void testInBrackets() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/inBrackets.kt"); + } + + @TestMetadata("init.kt") + public void testInit() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/init.kt"); + } + + @TestMetadata("labelForInfix.kt") + public void testLabelForInfix() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/labelForInfix.kt"); + } + + @TestMetadata("lambda.kt") + public void testLambda() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/lambda.kt"); + } + + @TestMetadata("lambdaAndAnonymousFunction.kt") + public void testLambdaAndAnonymousFunction() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/lambdaAndAnonymousFunction.kt"); + } + + @TestMetadata("locals.kt") + public void testLocals() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/locals.kt"); + } + + @TestMetadata("modifications.kt") + public void testModifications() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/modifications.kt"); + } + + @TestMetadata("namedArgument.kt") + public void testNamedArgument() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/namedArgument.kt"); + } + + @TestMetadata("nullability.kt") + public void testNullability() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/nullability.kt"); + } + + @TestMetadata("qualifierWithTypeArguments.kt") + public void testQualifierWithTypeArguments() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/qualifierWithTypeArguments.kt"); + } + + @TestMetadata("simpleReturns.kt") + public void testSimpleReturns() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/simpleReturns.kt"); + } + + @TestMetadata("super.kt") + public void testSuper() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/super.kt"); + } + + @TestMetadata("these.kt") + public void testThese() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/these.kt"); + } + + @TestMetadata("try.kt") + public void testTry() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/try.kt"); + } + + @TestMetadata("typeOperators.kt") + public void testTypeOperators() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/typeOperators.kt"); + } + + @TestMetadata("unary.kt") + public void testUnary() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/unary.kt"); + } + + @TestMetadata("variables.kt") + public void testVariables() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/variables.kt"); + } + + @TestMetadata("while.kt") + public void testWhile() throws Exception { + runTest("compiler/fir/raw-fir/psi2fir/testData/rawBuilder/expressions/while.kt"); + } + } +} diff --git a/compiler/tests/org/jetbrains/kotlin/generators/tests/GenerateCompilerTests.kt b/compiler/tests/org/jetbrains/kotlin/generators/tests/GenerateCompilerTests.kt index 7b4c74676bd..d02988ebccd 100644 --- a/compiler/tests/org/jetbrains/kotlin/generators/tests/GenerateCompilerTests.kt +++ b/compiler/tests/org/jetbrains/kotlin/generators/tests/GenerateCompilerTests.kt @@ -581,6 +581,10 @@ fun main(args: Array) { model("rawBuilder", testMethod = "doRawFirTest") } + testClass { + model("rawBuilder", testMethod = "doRawFirTest") + } + testClass { model("sourceElementMapping", testMethod = "doRawFirTest") }