[FIR] KT-57665: Make dynamic members' parameters dynamic
Parameter types are not only used "to accept" some data, but they also are used as inputs for inference (expected types) ^KT-57665 Fixed
This commit is contained in:
committed by
Space Team
parent
18f80b1ab5
commit
3b0a923210
@@ -128,7 +128,7 @@ class FirDynamicMembersStorage(val session: FirSession) : FirSessionComponent {
|
|||||||
private val anyArrayTypeRef = buildResolvedTypeRef {
|
private val anyArrayTypeRef = buildResolvedTypeRef {
|
||||||
type = ConeClassLikeTypeImpl(
|
type = ConeClassLikeTypeImpl(
|
||||||
StandardClassIds.Array.toLookupTag(),
|
StandardClassIds.Array.toLookupTag(),
|
||||||
arrayOf(session.builtinTypes.nullableAnyType.coneType),
|
arrayOf(dynamicTypeRef.coneType),
|
||||||
isNullable = false
|
isNullable = false
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+9
-9
@@ -2,15 +2,15 @@ fun test(d: dynamic) {
|
|||||||
val a = arrayOf(1, 2, 3)
|
val a = arrayOf(1, 2, 3)
|
||||||
|
|
||||||
d.foo(*d)
|
d.foo(*d)
|
||||||
d.foo(*<!ARGUMENT_TYPE_MISMATCH!>a<!>)
|
d.foo(*a)
|
||||||
d.foo(1, "2", *<!ARGUMENT_TYPE_MISMATCH!>a<!>)
|
d.foo(1, "2", *a)
|
||||||
d.foo(1, *<!ARGUMENT_TYPE_MISMATCH!>a<!>) <!VARARG_OUTSIDE_PARENTHESES!>{ }<!>
|
d.foo(1, *a) <!VARARG_OUTSIDE_PARENTHESES!>{ }<!>
|
||||||
d.foo(*<!ARGUMENT_TYPE_MISMATCH!>a<!>) <!VARARG_OUTSIDE_PARENTHESES!>{ "" }<!>
|
d.foo(*a) <!VARARG_OUTSIDE_PARENTHESES!>{ "" }<!>
|
||||||
d.foo(*<!ARGUMENT_TYPE_MISMATCH!>a<!>, *<!ARGUMENT_TYPE_MISMATCH!>a<!>)
|
d.foo(*a, *a)
|
||||||
d.foo(*<!ARGUMENT_TYPE_MISMATCH!>a<!>, *<!ARGUMENT_TYPE_MISMATCH!>a<!>) <!VARARG_OUTSIDE_PARENTHESES!>{ "" }<!>
|
d.foo(*a, *a) <!VARARG_OUTSIDE_PARENTHESES!>{ "" }<!>
|
||||||
d.foo(*<!ARGUMENT_TYPE_MISMATCH!>a<!>, 1, { "" }, *<!ARGUMENT_TYPE_MISMATCH!>a<!>)
|
d.foo(*a, 1, { "" }, *a)
|
||||||
d.foo(*<!ARGUMENT_TYPE_MISMATCH!>a<!>, 1)
|
d.foo(*a, 1)
|
||||||
d.foo(*<!ARGUMENT_TYPE_MISMATCH!>a<!>, *<!ARGUMENT_TYPE_MISMATCH!>a<!>, { "" })
|
d.foo(*a, *a, { "" })
|
||||||
|
|
||||||
bar(d)
|
bar(d)
|
||||||
bar(d, d)
|
bar(d, d)
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
// ISSUE: KT-57665
|
|
||||||
// DIAGNOSTICS: -UNUSED_PARAMETER
|
|
||||||
|
|
||||||
fun <T> T.foo(a: String, b: (T) -> Unit) {
|
|
||||||
this.asDynamic().goo(jso {
|
|
||||||
this.<!UNRESOLVED_REFERENCE!>asjhasdas<!>
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
fun <T : Any> jso(): T =
|
|
||||||
js("({})")
|
|
||||||
|
|
||||||
fun <T : Any> jso(
|
|
||||||
block: T.() -> Unit,
|
|
||||||
): T = jso<T>().apply(block)
|
|
||||||
@@ -1,3 +1,4 @@
|
|||||||
|
// FIR_IDENTICAL
|
||||||
// ISSUE: KT-57665
|
// ISSUE: KT-57665
|
||||||
// DIAGNOSTICS: -UNUSED_PARAMETER
|
// DIAGNOSTICS: -UNUSED_PARAMETER
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user