[FIR] Support of REDECLARATION for local val/var, ^KT-54405 Fixed
This commit is contained in:
committed by
Space Team
parent
879deb90fc
commit
e49bb1fe37
+2
-2
@@ -12,12 +12,12 @@ fun <!UNDERSCORE_IS_RESERVED!>__<!>(<!UNDERSCORE_IS_RESERVED!>___<!>: Int, y: <!
|
||||
val (x, <!UNDERSCORE_IS_RESERVED!>__________<!>) = Pair(<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>___<!> - 1, 42)
|
||||
val <!UNDERSCORE_IS_RESERVED!>____<!> = x
|
||||
// in backquotes: allowed
|
||||
val `_` = <!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>__________<!>
|
||||
val <!REDECLARATION!>`_`<!> = <!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>__________<!>
|
||||
|
||||
val q = fun(_: Int, <!UNDERSCORE_IS_RESERVED!>__<!>: Int) {}
|
||||
q(1, 2)
|
||||
|
||||
val <!UNDERSCORE_IS_RESERVED!>_<!> = 56
|
||||
val <!REDECLARATION, UNDERSCORE_IS_RESERVED!>_<!> = 56
|
||||
|
||||
fun localFun(<!UNDERSCORE_IS_RESERVED!>_<!>: String) = 1
|
||||
|
||||
|
||||
+4
-4
@@ -4,11 +4,11 @@ class A {
|
||||
}
|
||||
|
||||
fun a() {
|
||||
val (a, a) = A()
|
||||
val (x, y) = A();
|
||||
val b = 1
|
||||
val (<!REDECLARATION!>a<!>, <!REDECLARATION!>a<!>) = A()
|
||||
val (x, <!REDECLARATION!>y<!>) = A();
|
||||
val <!REDECLARATION!>b<!> = 1
|
||||
use(b)
|
||||
val (b, y) = A();
|
||||
val (<!REDECLARATION!>b<!>, <!REDECLARATION!>y<!>) = A();
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ class C {
|
||||
}
|
||||
|
||||
fun test() {
|
||||
for ((x, x) in C()) {
|
||||
for ((<!REDECLARATION!>x<!>, <!REDECLARATION!>x<!>) in C()) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Vendored
+2
-2
@@ -36,11 +36,11 @@ fun test() {
|
||||
foo(x, <!UNDERSCORE_USAGE_WITHOUT_BACKTICKS, UNRESOLVED_REFERENCE!>_<!>)
|
||||
foo(<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS, UNRESOLVED_REFERENCE!>_<!>, y)
|
||||
|
||||
val (`_`, z) = A()
|
||||
val (<!REDECLARATION!>`_`<!>, z) = A()
|
||||
|
||||
foo(<!UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>, z)
|
||||
|
||||
val (_, `_`) = A()
|
||||
val (_, <!REDECLARATION!>`_`<!>) = A()
|
||||
|
||||
foo(<!ARGUMENT_TYPE_MISMATCH, UNDERSCORE_USAGE_WITHOUT_BACKTICKS!>_<!>, y)
|
||||
|
||||
|
||||
Vendored
+2
-2
@@ -6,7 +6,7 @@ data class B(val u: Double, val w: Short)
|
||||
fun foo(block: (A, B) -> Unit) { }
|
||||
|
||||
fun bar() {
|
||||
foo { (a, a), b ->
|
||||
foo { (<!REDECLARATION!>a<!>, <!REDECLARATION!>a<!>), b ->
|
||||
a checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><Int>() }
|
||||
b checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
|
||||
}
|
||||
@@ -21,7 +21,7 @@ fun bar() {
|
||||
b checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
|
||||
}
|
||||
|
||||
foo { (a, b), (c, b) ->
|
||||
foo { (a, <!REDECLARATION!>b<!>), (c, <!REDECLARATION!>b<!>) ->
|
||||
a checkType { _<Int>() }
|
||||
b checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><String>() }
|
||||
c checkType { <!UNRESOLVED_REFERENCE_WRONG_RECEIVER!>_<!><B>() }
|
||||
|
||||
Vendored
+1
-1
@@ -46,7 +46,7 @@ fun bar() {
|
||||
_ checkType { _<String>() }
|
||||
}
|
||||
|
||||
foo { (`_`, `_`) ->
|
||||
foo { (<!REDECLARATION!>`_`<!>, <!REDECLARATION!>`_`<!>) ->
|
||||
_ checkType { _<String>() }
|
||||
}
|
||||
|
||||
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
// ISSUE: KT-54405
|
||||
|
||||
class A {
|
||||
operator fun component1() = 1
|
||||
operator fun component2() = ""
|
||||
}
|
||||
|
||||
fun test(b: Boolean) {
|
||||
val <!REDECLARATION!>y<!> = 1
|
||||
val <!REDECLARATION!>y<!> = 2
|
||||
val <!REDECLARATION!>`_`<!> = 3
|
||||
val <!REDECLARATION!>`_`<!> = 4
|
||||
{
|
||||
var <!REDECLARATION!>a<!> = 10
|
||||
var <!REDECLARATION!>a<!> = 11
|
||||
}
|
||||
if (b) {
|
||||
val z = 3
|
||||
val <!REDECLARATION!>x<!> = 5
|
||||
val <!REDECLARATION!>x<!> = 6
|
||||
} else {
|
||||
val z = 4
|
||||
}
|
||||
}
|
||||
|
||||
fun test2() {
|
||||
val (`_`, _) = A()
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
// ISSUE: KT-54405
|
||||
|
||||
class A {
|
||||
operator fun component1() = 1
|
||||
operator fun component2() = ""
|
||||
}
|
||||
|
||||
fun test(b: Boolean) {
|
||||
val <!REDECLARATION!>y<!> = 1
|
||||
val <!NAME_SHADOWING, REDECLARATION!>y<!> = 2
|
||||
val <!REDECLARATION!>`_`<!> = 3
|
||||
val <!NAME_SHADOWING, REDECLARATION!>`_`<!> = 4
|
||||
{
|
||||
var <!REDECLARATION!>a<!> = 10
|
||||
var <!NAME_SHADOWING, REDECLARATION!>a<!> = 11
|
||||
}
|
||||
if (b) {
|
||||
val z = 3
|
||||
val <!REDECLARATION!>x<!> = 5
|
||||
val <!NAME_SHADOWING, REDECLARATION!>x<!> = 6
|
||||
} else {
|
||||
val z = 4
|
||||
}
|
||||
}
|
||||
|
||||
fun test2() {
|
||||
val (`_`, _) = A()
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package
|
||||
|
||||
public fun test(/*0*/ b: kotlin.Boolean): kotlin.Unit
|
||||
public fun test2(): kotlin.Unit
|
||||
|
||||
public final class A {
|
||||
public constructor A()
|
||||
public final operator fun component1(): kotlin.Int
|
||||
public final operator fun component2(): kotlin.String
|
||||
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user