Skip to content

Commit d376156

Browse files
GrigoriiSolnyshkinSpace Team
authored andcommitted
[LightTree] Align SPREAD_OPERATOR positioning strategy with PSI
^KT-81522 Fixed
1 parent 9cd229a commit d376156

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

compiler/frontend.common-psi/src/org/jetbrains/kotlin/diagnostics/LightTreePositioningStrategies.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1190,7 +1190,8 @@ object LightTreePositioningStrategies {
11901190
endOffset: Int,
11911191
tree: FlyweightCapableTreeStructure<LighterASTNode>
11921192
): List<TextRange> {
1193-
return super.mark(node, startOffset, startOffset + 1, tree)
1193+
return tree.findChildByType(node, MUL)?.let { markElement(it, startOffset, endOffset, tree, node) }
1194+
?: super.mark(node, startOffset, endOffset, tree)
11941195
}
11951196
}
11961197

compiler/testData/diagnostics/tests/varargs/NullableTypeForVarargArgument.fir.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@ fun getArr(): Array<String>? = null
3131

3232
fun f() {
3333
A().foo(1, <!SPREAD_OF_NULLABLE!>*<!>args)
34+
A().foo(1, <!NAMED_ARGUMENTS_NOT_ALLOWED!>args<!> = <!SPREAD_OF_NULLABLE!>*<!>args)
3435
bar(2, <!SPREAD_OF_NULLABLE!>*<!><!ARGUMENT_TYPE_MISMATCH!>args<!>)
36+
bar(2, s = <!SPREAD_OF_NULLABLE!>*<!><!ARGUMENT_TYPE_MISMATCH!>args<!>)
3537
baz(<!NON_VARARG_SPREAD, SPREAD_OF_NULLABLE!>*<!><!ARGUMENT_TYPE_MISMATCH!>args<!>)
38+
baz(s = <!NON_VARARG_SPREAD, SPREAD_OF_NULLABLE!>*<!><!ARGUMENT_TYPE_MISMATCH!>args<!>)
3639
}
3740

3841
fun g(args: Array<String>?) {
@@ -50,13 +53,17 @@ class B {
5053
fun h(b: B) {
5154
if (b.args != null) {
5255
A().foo(1, <!SPREAD_OF_NULLABLE!>*<!>b.args)
56+
A().foo(1, <!NAMED_ARGUMENTS_NOT_ALLOWED!>args<!> = <!SPREAD_OF_NULLABLE!>*<!>b.args)
5357
}
5458
}
5559

5660
fun k() {
5761
A().foo(1, <!SPREAD_OF_NULLABLE!>*<!>getArr())
62+
A().foo(1, <!NAMED_ARGUMENTS_NOT_ALLOWED!>args<!> = <!SPREAD_OF_NULLABLE!>*<!>getArr())
5863
bar(2, <!SPREAD_OF_NULLABLE!>*<!><!ARGUMENT_TYPE_MISMATCH!>getArr()<!>)
64+
bar(2, s = <!SPREAD_OF_NULLABLE!>*<!><!ARGUMENT_TYPE_MISMATCH!>getArr()<!>)
5965
baz(<!NON_VARARG_SPREAD, SPREAD_OF_NULLABLE!>*<!><!ARGUMENT_TYPE_MISMATCH!>getArr()<!>)
66+
baz(s = <!NON_VARARG_SPREAD, SPREAD_OF_NULLABLE!>*<!><!ARGUMENT_TYPE_MISMATCH!>getArr()<!>)
6067
}
6168

6269
fun invokeTest(goodArgs: Array<String>) {

compiler/testData/diagnostics/tests/varargs/NullableTypeForVarargArgument.kt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,11 @@ fun getArr(): Array<String>? = null
3131

3232
fun f() {
3333
A().foo(1, <!SPREAD_OF_NULLABLE!>*<!>args)
34+
A().foo(1, <!NAMED_ARGUMENTS_NOT_ALLOWED!>args<!> = <!SPREAD_OF_NULLABLE!>*<!><!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>args<!>)
3435
bar(2, <!SPREAD_OF_NULLABLE!>*<!><!TYPE_MISMATCH!>args<!>)
36+
bar(2, s = <!SPREAD_OF_NULLABLE!>*<!><!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION, TYPE_MISMATCH!>args<!>)
3537
baz(<!NON_VARARG_SPREAD_ERROR, SPREAD_OF_NULLABLE!>*<!><!TYPE_MISMATCH!>args<!>)
38+
baz(s = <!NON_VARARG_SPREAD_ERROR, SPREAD_OF_NULLABLE!>*<!><!TYPE_MISMATCH!>args<!>)
3639
}
3740

3841
fun g(args: Array<String>?) {
@@ -50,13 +53,17 @@ class B {
5053
fun h(b: B) {
5154
if (b.args != null) {
5255
A().foo(1, <!SPREAD_OF_NULLABLE!>*<!>b.args)
56+
A().foo(1, <!NAMED_ARGUMENTS_NOT_ALLOWED!>args<!> = <!SPREAD_OF_NULLABLE!>*<!><!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>b.args<!>)
5357
}
5458
}
5559

5660
fun k() {
5761
A().foo(1, <!SPREAD_OF_NULLABLE!>*<!>getArr())
62+
A().foo(1, <!NAMED_ARGUMENTS_NOT_ALLOWED!>args<!> = <!SPREAD_OF_NULLABLE!>*<!><!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION!>getArr()<!>)
5863
bar(2, <!SPREAD_OF_NULLABLE!>*<!><!TYPE_MISMATCH!>getArr()<!>)
64+
bar(2, s = <!SPREAD_OF_NULLABLE!>*<!><!REDUNDANT_SPREAD_OPERATOR_IN_NAMED_FORM_IN_FUNCTION, TYPE_MISMATCH!>getArr()<!>)
5965
baz(<!NON_VARARG_SPREAD_ERROR, SPREAD_OF_NULLABLE!>*<!><!TYPE_MISMATCH!>getArr()<!>)
66+
baz(s = <!NON_VARARG_SPREAD_ERROR, SPREAD_OF_NULLABLE!>*<!><!TYPE_MISMATCH!>getArr()<!>)
6067
}
6168

6269
fun invokeTest(goodArgs: Array<String>) {

0 commit comments

Comments
 (0)