JS: fix translation of references to external nested classes in files marked with @JsModule. See KT-15797

This commit is contained in:
Alexey Andreev
2017-01-19 15:53:25 +03:00
parent 5fc8208504
commit 245f23e7c2
12 changed files with 64 additions and 7 deletions
@@ -2,7 +2,9 @@
package foo
@JsModule("A")
external class <!NESTED_JS_MODULE_PROHIBITED!>A<!>
external class <!NESTED_JS_MODULE_PROHIBITED!>A<!> {
class Nested
}
@JsModule("B")
external <!NESTED_JS_MODULE_PROHIBITED!>object B<!>
@@ -10,6 +10,13 @@ package foo {
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
public final class Nested {
public constructor Nested()
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
}
}
@kotlin.js.JsModule(import = "B") public external object B {
@@ -14,6 +14,8 @@ external object A {
@JsModule("B")
external open class B {
fun foo(): Int
class Nested
}
@JsModule("bar")
@@ -37,6 +39,8 @@ fun box() {
<!CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM!>B<!>()
<!CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM!>bar<!>()
<!CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM!>baz<!>()
B.<!CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM!>Nested<!>()
}
external class DerivedB : <!CALL_TO_JS_MODULE_WITHOUT_MODULE_SYSTEM!>B<!>
@@ -19,6 +19,13 @@ package foo {
public final fun foo(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final class Nested {
public constructor Nested()
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
}
}
}
@@ -14,6 +14,8 @@ external object A {
@JsNonModule
external open class B {
fun foo(): Int
class Nested
}
@JsNonModule
@@ -31,6 +33,7 @@ fun box() {
A.<!CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM!>f<!>()+A.<!CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM!>g<!>
<!CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM!>B<!>()
<!CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM!>bar<!>()
B.<!CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM!>Nested<!>()
}
external class DerivedB : <!CALL_TO_JS_NON_MODULE_WITH_MODULE_SYSTEM!>B<!>
@@ -30,5 +30,12 @@ package foo {
public final fun foo(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final class Nested {
public constructor Nested()
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
}
}
}