Dynamic calls have priority over extensions
This commit is contained in:
@@ -4,33 +4,33 @@
|
||||
// FILE: k.kt
|
||||
|
||||
fun test(d: dynamic) {
|
||||
d.foo()
|
||||
d.<!DEBUG_INFO_DYNAMIC!>foo<!>(1)
|
||||
d.<!DEBUG_INFO_DYNAMIC!>onAny<!>()
|
||||
d?.<!DEBUG_INFO_DYNAMIC!>onAny<!>()
|
||||
d!!.<!DEBUG_INFO_DYNAMIC!>onAny<!>()
|
||||
|
||||
d.bar()
|
||||
d.baz()
|
||||
d.<!DEBUG_INFO_DYNAMIC!>onAny<!>(1)
|
||||
|
||||
d == 1
|
||||
d.<!DEBUG_INFO_DYNAMIC!>onNullableAny<!>()
|
||||
d.<!DEBUG_INFO_DYNAMIC!>onString<!>()
|
||||
|
||||
d.equals(1)
|
||||
d?.equals(1)
|
||||
d.<!DEBUG_INFO_DYNAMIC!>onDynamic<!>()
|
||||
d?.<!DEBUG_INFO_DYNAMIC!>onDynamic<!>()
|
||||
|
||||
d.hashCode()
|
||||
d?.hashCode()
|
||||
|
||||
d.toString()
|
||||
d?.toString()
|
||||
(d: String).onString()
|
||||
(d: Any).onAny()
|
||||
(d: Any?).onNullableAny()
|
||||
(d: Any).onDynamic()
|
||||
}
|
||||
|
||||
fun Any.foo() {}
|
||||
fun Any?.bar() {}
|
||||
|
||||
fun String.baz() {}
|
||||
fun Any.onAny() {}
|
||||
fun Any?.onNullableAny() {}
|
||||
fun String.onString() {}
|
||||
fun dynamic.onDynamic() {}
|
||||
|
||||
class C {
|
||||
fun test(d: dynamic) {
|
||||
d.<!DEBUG_INFO_DYNAMIC!>member<!>()
|
||||
d.memberExtension()
|
||||
d.<!DEBUG_INFO_DYNAMIC!>memberExtension<!>()
|
||||
}
|
||||
|
||||
fun member() {}
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
package
|
||||
|
||||
internal fun test(/*0*/ d: dynamic): kotlin.Unit
|
||||
internal fun kotlin.Any?.bar(): kotlin.Unit
|
||||
internal fun kotlin.String.baz(): kotlin.Unit
|
||||
internal fun kotlin.Any.foo(): kotlin.Unit
|
||||
internal fun kotlin.Any.onAny(): kotlin.Unit
|
||||
internal fun dynamic.onDynamic(): kotlin.Unit
|
||||
internal fun kotlin.Any?.onNullableAny(): kotlin.Unit
|
||||
internal fun kotlin.String.onString(): kotlin.Unit
|
||||
|
||||
internal final class C {
|
||||
public constructor C()
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
// !MARK_DYNAMIC_CALLS
|
||||
|
||||
// MODULE[js]: m1
|
||||
// FILE: k.kt
|
||||
|
||||
fun test(d: dynamic) {
|
||||
d == 1
|
||||
|
||||
d.equals(1)
|
||||
d?.equals(1)
|
||||
d!!.equals(1)
|
||||
|
||||
d.hashCode()
|
||||
d?.hashCode()
|
||||
d!!.hashCode()
|
||||
|
||||
d.toString()
|
||||
d?.toString()
|
||||
d!!.toString()
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
package
|
||||
|
||||
internal fun test(/*0*/ d: dynamic): kotlin.Unit
|
||||
@@ -1,11 +1,19 @@
|
||||
// !CHECK_TYPE
|
||||
// !DIAGNOSTICS: -UNUSED_PARAMETER
|
||||
|
||||
// MODULE[js]: m1
|
||||
// FILE: k.kt
|
||||
|
||||
fun foo(dn: dynamic<!REDUNDANT_NULLABLE!>?<!>, d: dynamic, dnn: dynamic<!REDUNDANT_NULLABLE!>?<!><!REDUNDANT_NULLABLE!>?<!>) {
|
||||
dn.checkType { it : _<dynamic>}
|
||||
dn.checkType { it : _<dynamic<!REDUNDANT_NULLABLE!>?<!>>}
|
||||
d.checkType { it : _<dynamic>}
|
||||
d.checkType { it : _<dynamic<!REDUNDANT_NULLABLE!>?<!>>}
|
||||
val a1 = dn.foo()
|
||||
a1.isDynamic()
|
||||
|
||||
val a2 = dn?.foo()
|
||||
a2.isDynamic()
|
||||
|
||||
val a3 = dn!!.foo()
|
||||
a3.isDynamic()
|
||||
|
||||
d.foo()
|
||||
d?.foo()
|
||||
d!!.foo()
|
||||
}
|
||||
@@ -1,3 +1,3 @@
|
||||
package
|
||||
|
||||
internal fun foo(/*0*/ dn: dynamic, /*1*/ d: dynamic): kotlin.Unit
|
||||
internal fun foo(/*0*/ dn: dynamic, /*1*/ d: dynamic, /*2*/ dnn: dynamic): kotlin.Unit
|
||||
|
||||
Reference in New Issue
Block a user