From ed73513d482e2aaa69d5478306a9e5f9b08c0e4d Mon Sep 17 00:00:00 2001 From: "victor.petukhov" Date: Tue, 25 Sep 2018 13:02:03 +0300 Subject: [PATCH] Add PSI test templates for identifiers --- .../templates/_layout/linkedTestsLayout.kt | 10 +++++++++ .../templates/_layout/notLinkedTestsLayout.kt | 9 ++++++++ .../templates/identifiers/atomicExpression.kt | 9 ++++++++ .../identifiers/callableReference.kt | 7 ++++++ .../psi/templates/identifiers/catchBlock.kt | 5 +++++ .../psi/templates/identifiers/class.kt | 9 ++++++++ .../templates/identifiers/companionObject.kt | 17 ++++++++++++++ .../psi/templates/identifiers/enumEntry.kt | 4 ++++ .../identifiers/fileAnnotationComplex.kt | 1 + .../identifiers/fileAnnotationSimple.kt | 1 + .../psi/templates/identifiers/function.kt | 5 +++++ .../psi/templates/identifiers/import.kt | 9 ++++++++ .../identifiers/infixFunctionCall.kt | 5 +++++ .../templates/identifiers/labelDefinition.kt | 21 ++++++++++++++++++ .../templates/identifiers/labelReference.kt | 8 +++++++ .../psi/templates/identifiers/object.kt | 7 ++++++ .../templates/identifiers/packageComplex.kt | 1 + .../templates/identifiers/packageSimple.kt | 1 + .../psi/templates/identifiers/parameter.kt | 12 ++++++++++ .../psi/templates/identifiers/setter.kt | 14 ++++++++++++ .../templates/identifiers/simpleUserType.kt | 7 ++++++ .../identifiers/stringTemplateElement.kt | 7 ++++++ .../psi/templates/identifiers/typeAlias.kt | 5 +++++ .../templates/identifiers/typeConstraint.kt | 16 ++++++++++++++ .../templates/identifiers/typeParameter.kt | 13 +++++++++++ .../identifiers/unescapedAnnotation.kt | 22 +++++++++++++++++++ .../templates/identifiers/valueArgument.kt | 11 ++++++++++ .../identifiers/variableDeclarationEntry.kt | 15 +++++++++++++ 28 files changed, 251 insertions(+) create mode 100644 compiler/tests-spec/testData/psi/templates/_layout/linkedTestsLayout.kt create mode 100644 compiler/tests-spec/testData/psi/templates/_layout/notLinkedTestsLayout.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/atomicExpression.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/callableReference.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/catchBlock.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/class.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/companionObject.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/enumEntry.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/fileAnnotationComplex.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/fileAnnotationSimple.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/function.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/import.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/infixFunctionCall.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/labelDefinition.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/labelReference.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/object.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/packageComplex.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/packageSimple.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/parameter.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/setter.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/simpleUserType.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/stringTemplateElement.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/typeAlias.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/typeConstraint.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/typeParameter.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/unescapedAnnotation.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/valueArgument.kt create mode 100644 compiler/tests-spec/testData/psi/templates/identifiers/variableDeclarationEntry.kt diff --git a/compiler/tests-spec/testData/psi/templates/_layout/linkedTestsLayout.kt b/compiler/tests-spec/testData/psi/templates/_layout/linkedTestsLayout.kt new file mode 100644 index 00000000000..f5b3e2f0b71 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/_layout/linkedTestsLayout.kt @@ -0,0 +1,10 @@ +/* + KOTLIN PSI SPEC TEST () + + SECTIONS: + PARAGRAPH: + SENTENCE: [] + NUMBER: + DESCRIPTION: + NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY! + */ \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/templates/_layout/notLinkedTestsLayout.kt b/compiler/tests-spec/testData/psi/templates/_layout/notLinkedTestsLayout.kt new file mode 100644 index 00000000000..f235766b200 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/_layout/notLinkedTestsLayout.kt @@ -0,0 +1,9 @@ +/* + KOTLIN NOT LINKED PSI SPEC TEST () + + SECTION: + CATEGORIES: + NUMBER: + DESCRIPTION: + NOTE: this test data is generated by FeatureInteractionTestDataGenerator. DO NOT MODIFY CODE MANUALLY! + */ \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/atomicExpression.kt b/compiler/tests-spec/testData/psi/templates/identifiers/atomicExpression.kt new file mode 100644 index 00000000000..4814cc4ca38 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/atomicExpression.kt @@ -0,0 +1,9 @@ +val = 10 +val = "." + +val value_1 = - 100 % +val value_2 = .dec() +val value_3 = "$ 10" +val value_4 = "${}" +val value_5 = + " 11..." + + "1" +val value_6 = diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/callableReference.kt b/compiler/tests-spec/testData/psi/templates/identifiers/callableReference.kt new file mode 100644 index 00000000000..8a99adfe22c --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/callableReference.kt @@ -0,0 +1,7 @@ +fun case_1() { + Boolean:: + + Boolean???:::::: + + org.jetbrains.Boolean?:::: +} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/catchBlock.kt b/compiler/tests-spec/testData/psi/templates/identifiers/catchBlock.kt new file mode 100644 index 00000000000..d05269f10ba --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/catchBlock.kt @@ -0,0 +1,5 @@ +fun f() { + try {} catch (: Any) {} + + try {} catch (@a : Any) {} +} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/class.kt b/compiler/tests-spec/testData/psi/templates/identifiers/class.kt new file mode 100644 index 00000000000..ae965ab4ede --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/class.kt @@ -0,0 +1,9 @@ +class {} + +internal class A: {} + +interface {} + +interface A: @ B {} + +interface A: B, C, {} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/companionObject.kt b/compiler/tests-spec/testData/psi/templates/identifiers/companionObject.kt new file mode 100644 index 00000000000..9ff27ed1708 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/companionObject.kt @@ -0,0 +1,17 @@ +class A { + companion object { + + } +} + +class B { + companion object : A() { + + } +} + +class C { + companion object : B by expr, x1, A() { + + } +} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/enumEntry.kt b/compiler/tests-spec/testData/psi/templates/identifiers/enumEntry.kt new file mode 100644 index 00000000000..85913f439a6 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/enumEntry.kt @@ -0,0 +1,4 @@ +enum class A(x1: Any?) { + ("1"), + ("2"); +} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/fileAnnotationComplex.kt b/compiler/tests-spec/testData/psi/templates/identifiers/fileAnnotationComplex.kt new file mode 100644 index 00000000000..825b00c66ff --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/fileAnnotationComplex.kt @@ -0,0 +1 @@ +@file:[JvmName.<>()] diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/fileAnnotationSimple.kt b/compiler/tests-spec/testData/psi/templates/identifiers/fileAnnotationSimple.kt new file mode 100644 index 00000000000..c0294b536db --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/fileAnnotationSimple.kt @@ -0,0 +1 @@ +@file: diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/function.kt b/compiler/tests-spec/testData/psi/templates/identifiers/function.kt new file mode 100644 index 00000000000..d0d435373d2 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/function.kt @@ -0,0 +1,5 @@ +fun () {} + +suspend fun () {} + +inline fun () = diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/import.kt b/compiler/tests-spec/testData/psi/templates/identifiers/import.kt new file mode 100644 index 00000000000..dc3f6773a20 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/import.kt @@ -0,0 +1,9 @@ +import org.jetbrains..* + +import + +import .*; + +import .*import + +import org.jetbrains.kotlin as diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/infixFunctionCall.kt b/compiler/tests-spec/testData/psi/templates/identifiers/infixFunctionCall.kt new file mode 100644 index 00000000000..ea4ce6d71cf --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/infixFunctionCall.kt @@ -0,0 +1,5 @@ +fun f() { + 1 + 1 10..11 + + 1 + 1 10..11 10 -.9-9.0 +} \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/labelDefinition.kt b/compiler/tests-spec/testData/psi/templates/identifiers/labelDefinition.kt new file mode 100644 index 00000000000..9459f2ee9d9 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/labelDefinition.kt @@ -0,0 +1,21 @@ +fun f() { + val lambda_1 = @ {} + + val lambda_2 = @ { + println(1) + } + + val lambda_3 = @someAnotation @ { + println(1) + } + + val lambda_4 = @someAnotation1 @someAnotation2 @someAnotation3 @ { + println(1) + } + + val x1 = @ 10 - 1 + val x2 = @(listOf(1)) + val x3 = @(return return) && @ return return + val x4 = @ try {} finally {} && @ return return + val x5 = @ try { false } catch(e: E) {} catch (e: Exception) { true } && @ when (value) { @ true -> @ false; @ false -> @ true } +} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/labelReference.kt b/compiler/tests-spec/testData/psi/templates/identifiers/labelReference.kt new file mode 100644 index 00000000000..c71103718b9 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/labelReference.kt @@ -0,0 +1,8 @@ +fun f() { + return@ + + while (true) { + break@ + continue@ + } +} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/object.kt b/compiler/tests-spec/testData/psi/templates/identifiers/object.kt new file mode 100644 index 00000000000..c6f6997d32a --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/object.kt @@ -0,0 +1,7 @@ +object A : {} + +object B : A, >, > {} + +object constructor() {} + +object : <> {} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/packageComplex.kt b/compiler/tests-spec/testData/psi/templates/identifiers/packageComplex.kt new file mode 100644 index 00000000000..c380a2339d1 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/packageComplex.kt @@ -0,0 +1 @@ +package org.jetbrains. diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/packageSimple.kt b/compiler/tests-spec/testData/psi/templates/identifiers/packageSimple.kt new file mode 100644 index 00000000000..b157c568581 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/packageSimple.kt @@ -0,0 +1 @@ +package diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/parameter.kt b/compiler/tests-spec/testData/psi/templates/identifiers/parameter.kt new file mode 100644 index 00000000000..48600f3fb90 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/parameter.kt @@ -0,0 +1,12 @@ +fun f1(: Int) {} + +fun f2(: Boolean, : Boolean) = + +fun f3(val : Boolean = , var : Boolean) = + +class A { + val x1: Boolean = + set() = + var x2: Boolean = + set(vararg : Boolean) = +} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/setter.kt b/compiler/tests-spec/testData/psi/templates/identifiers/setter.kt new file mode 100644 index 00000000000..e9cf181a6a3 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/setter.kt @@ -0,0 +1,14 @@ +class A { + var x1: String + set(private ) = + + var x2: String + set(abstract final ) { + return field + } +} + +var x3 = 0L + set(suspend ) { + return field + } diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/simpleUserType.kt b/compiler/tests-spec/testData/psi/templates/identifiers/simpleUserType.kt new file mode 100644 index 00000000000..1754f9d56ee --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/simpleUserType.kt @@ -0,0 +1,7 @@ +fun f1(a: ) {} + +fun f2(a: <*>) {} + +fun f3(a: ) {} + +fun f4(a: <*>>>) {} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/stringTemplateElement.kt b/compiler/tests-spec/testData/psi/templates/identifiers/stringTemplateElement.kt new file mode 100644 index 00000000000..be405af4fd5 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/stringTemplateElement.kt @@ -0,0 +1,7 @@ +fun f1() { + val x1 = "$" + + val x2 = "..." + "...$..." + "..." + + var x3 = "$$$" +} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/typeAlias.kt b/compiler/tests-spec/testData/psi/templates/identifiers/typeAlias.kt new file mode 100644 index 00000000000..fc2effb65da --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/typeAlias.kt @@ -0,0 +1,5 @@ +typealias = Boolean + +private typealias = List + +internal typealias <> = Map<<>, List<>> diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/typeConstraint.kt b/compiler/tests-spec/testData/psi/templates/identifiers/typeConstraint.kt new file mode 100644 index 00000000000..cdd628479ac --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/typeConstraint.kt @@ -0,0 +1,16 @@ +class A <, > + where : CharSequence, + : Comparable<> + +annotation class B <> + where : CharSequence, + @A> @B : Comparable<> + +annotation class C <, > where @property:C : CharSequence, : Comparable<> + +fun <, > d(): Boolean + where : Any, + : Iterable<*>, + : Collection<*>, + : MutableCollection<*>, + : Comparable<> = == \ No newline at end of file diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/typeParameter.kt b/compiler/tests-spec/testData/psi/templates/identifiers/typeParameter.kt new file mode 100644 index 00000000000..f09ef46cd1f --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/typeParameter.kt @@ -0,0 +1,13 @@ +fun <> f1() {} + +fun > T.f2() {} + +class B>>> {} + +class B>> {} + +fun > T.f3() {} + +fun f4(a: List>) {} + +fun f5(a: List?>>>) {} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/unescapedAnnotation.kt b/compiler/tests-spec/testData/psi/templates/identifiers/unescapedAnnotation.kt new file mode 100644 index 00000000000..29e74a0cd94 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/unescapedAnnotation.kt @@ -0,0 +1,22 @@ +class A { + @field: + val a: Int = "" + + @setparam:() + val b: Int = "" + + @receiver:org.jetbrains.>() + val c: Int = "" + + @org.jetbrains. + val c: Int = "" + + @, C>(, , ) + val c: Int = "" + + @ + val c: Int = "" + + @.., C>(, , ) + val c: Int = "" +} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/valueArgument.kt b/compiler/tests-spec/testData/psi/templates/identifiers/valueArgument.kt new file mode 100644 index 00000000000..c7a7623f7a6 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/valueArgument.kt @@ -0,0 +1,11 @@ +fun f1() { + f2( = expr) + + f3( = (0L - 10 + throw E() - -.09)) + + f4( + = return return, + = try {} finally {}, + = 0x10 + ) +} diff --git a/compiler/tests-spec/testData/psi/templates/identifiers/variableDeclarationEntry.kt b/compiler/tests-spec/testData/psi/templates/identifiers/variableDeclarationEntry.kt new file mode 100644 index 00000000000..41104e0e779 --- /dev/null +++ b/compiler/tests-spec/testData/psi/templates/identifiers/variableDeclarationEntry.kt @@ -0,0 +1,15 @@ +fun f1() { + for (: Any in 0..10) {} + + val x1 = {: Boolean -> + println("1") + } + + val x2 = {: Boolean, : -> } + + var : Boolean; + + val x3 = fun(: Boolean) { + + }() +}