Tests for extensions properties on dynamic types

This commit is contained in:
Andrey Breslav
2014-11-24 15:24:43 +03:00
parent 5cced5a451
commit 8ee00b70ee
5 changed files with 159 additions and 0 deletions
@@ -0,0 +1,49 @@
// !MARK_DYNAMIC_CALLS
// MODULE[js]: m1
// FILE: k.kt
fun test(d: dynamic) {
d.<!DEBUG_INFO_DYNAMIC!>onAnyVal<!>
d.<!DEBUG_INFO_DYNAMIC!>onAnyVal<!> = 1
d?.<!DEBUG_INFO_DYNAMIC!>onAnyVal<!>
d?.<!DEBUG_INFO_DYNAMIC!>onAnyVal<!> = 1
d!!.<!DEBUG_INFO_DYNAMIC!>onAnyVal<!>
d!!.<!DEBUG_INFO_DYNAMIC!>onAnyVal<!> = 1
d.<!DEBUG_INFO_DYNAMIC!>onNullableAnyVal<!> = 1
d.<!DEBUG_INFO_DYNAMIC!>onStringVal<!> = 1
d.<!DEBUG_INFO_DYNAMIC!>onDynamicVal<!> = 1
d?.<!DEBUG_INFO_DYNAMIC!>onDynamicVal<!> = 1
(d: String).onStringVal
(d: Any).onAnyVal
(d: Any?).onNullableAnyVal
(d: Any).onDynamicVal
<!VAL_REASSIGNMENT!>(d: String).onStringVal<!> = 1
<!VAL_REASSIGNMENT!>(d: Any).onAnyVal<!> = 1
<!VAL_REASSIGNMENT!>(d: Any?).onNullableAnyVal<!> = 1
<!VAL_REASSIGNMENT!>(d: Any).onDynamicVal<!> = 1
}
val Any.onAnyVal: Int get() = 1
val Any?.onNullableAnyVal: Int get() = 1
val String.onStringVal: Int get() = 1
val dynamic.onDynamicVal: Int get() = 1
class C {
fun test(d: dynamic) {
d.<!DEBUG_INFO_DYNAMIC!>memberVal<!>
d.<!DEBUG_INFO_DYNAMIC!>memberExtensionVal<!>
}
val memberVal = 1
val Any.memberExtensionVal: Int
get() = 1
}
@@ -0,0 +1,17 @@
package
internal val kotlin.Any.onAnyVal: kotlin.Int
internal val dynamic.onDynamicVal: kotlin.Int
internal val kotlin.Any?.onNullableAnyVal: kotlin.Int
internal val kotlin.String.onStringVal: kotlin.Int
internal fun test(/*0*/ d: dynamic): kotlin.Unit
internal final class C {
public constructor C()
internal final val memberVal: kotlin.Int = 1
internal final val kotlin.Any.memberExtensionVal: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
internal final fun test(/*0*/ d: dynamic): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -0,0 +1,64 @@
// !MARK_DYNAMIC_CALLS
// MODULE[js]: m1
// FILE: k.kt
fun test(d: dynamic) {
d.<!DEBUG_INFO_DYNAMIC!>onAnyVar<!>
d.<!DEBUG_INFO_DYNAMIC!>onAnyVar<!> = 1
d?.<!DEBUG_INFO_DYNAMIC!>onAnyVar<!>
d?.<!DEBUG_INFO_DYNAMIC!>onAnyVar<!> = 1
d!!.<!DEBUG_INFO_DYNAMIC!>onAnyVar<!>
d!!.<!DEBUG_INFO_DYNAMIC!>onAnyVar<!> = 1
d.<!DEBUG_INFO_DYNAMIC!>onNullableAnyVar<!> = 1
d.<!DEBUG_INFO_DYNAMIC!>onStringVar<!> = 1
d.<!DEBUG_INFO_DYNAMIC!>onDynamicVar<!> = 1
d?.<!DEBUG_INFO_DYNAMIC!>onDynamicVar<!> = 1
(d: String).onStringVar
(d: Any).onAnyVar
(d: Any?).onNullableAnyVar
(d: Any).onDynamicVar
(d: String).onStringVar = 1
(d: Any).onAnyVar = 1
(d: Any?).onNullableAnyVar = 1
(d: Any).onDynamicVar = 1
}
var Any.onAnyVar: Int
get() = 1
set(v) {}
var Any?.onNullableAnyVar: Int
get() = 1
set(v) {}
var String.onStringVar: Int
get() = 1
set(v) {}
var dynamic.onDynamicVar: Int
get() = 1
set(v) {}
class C {
fun test(d: dynamic) {
d.<!DEBUG_INFO_DYNAMIC!>memberVar<!>
d.<!DEBUG_INFO_DYNAMIC!>memberExtensionVar<!>
d.<!DEBUG_INFO_DYNAMIC!>memberVar<!> = 1
d.<!DEBUG_INFO_DYNAMIC!>memberExtensionVar<!> = 1
}
var memberVar = 1
var Any.memberExtensionVar: Int
get() = 1
set(v) {}
}
@@ -0,0 +1,17 @@
package
internal var kotlin.Any.onAnyVar: kotlin.Int
internal var dynamic.onDynamicVar: kotlin.Int
internal var kotlin.Any?.onNullableAnyVar: kotlin.Int
internal var kotlin.String.onStringVar: kotlin.Int
internal fun test(/*0*/ d: dynamic): kotlin.Unit
internal final class C {
public constructor C()
internal final var memberVar: kotlin.Int
internal final var kotlin.Any.memberExtensionVar: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
internal final fun test(/*0*/ d: dynamic): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
@@ -3764,6 +3764,18 @@ public class JetDiagnosticsTestGenerated extends AbstractJetDiagnosticsTest {
doTest(fileName);
}
@TestMetadata("extensionVals.kt")
public void testExtensionVals() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dynamicTypes/extensionVals.kt");
doTest(fileName);
}
@TestMetadata("extensionVars.kt")
public void testExtensionVars() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dynamicTypes/extensionVars.kt");
doTest(fileName);
}
@TestMetadata("extensions.kt")
public void testExtensions() throws Exception {
String fileName = JetTestUtils.navigationMetadata("compiler/testData/diagnostics/tests/dynamicTypes/extensions.kt");