Define applicability for platform/impl modifiers

This commit is contained in:
Alexander Udalov
2016-11-21 11:24:31 +03:00
parent a3cfd3962c
commit ad59d5a1c8
4 changed files with 84 additions and 2 deletions
@@ -0,0 +1,35 @@
// !LANGUAGE: +MultiPlatformProjects
// MODULE: m1-common
// FILE: common.kt
<!WRONG_MODIFIER_TARGET!>platform<!> typealias Foo = String
class Outer <!WRONG_MODIFIER_TARGET!>platform<!> constructor() {
platform class Nested
<!WRONG_MODIFIER_TARGET!>platform<!> init {}
<!NON_ABSTRACT_FUNCTION_WITH_NO_BODY!><!WRONG_MODIFIER_TARGET!>platform<!> fun foo()<!>
<!WRONG_MODIFIER_TARGET!>platform<!> val bar: Int
}
fun foo() {
<!WRONG_MODIFIER_TARGET!>platform<!> fun localFun()
<!WRONG_MODIFIER_TARGET!>platform<!> var <!UNUSED_VARIABLE!>x<!> = 42
<!WRONG_MODIFIER_TARGET!>platform<!> class Bar
}
// MODULE: m2-jvm
// FILE: jvm.kt
class Outer impl constructor() {
<!PLATFORM_DEFINITION_WITHOUT_DECLARATION!>impl<!> class Nested
<!WRONG_MODIFIER_TARGET!>impl<!> init {}
}
fun foo() {
<!WRONG_MODIFIER_TARGET!>impl<!> fun localFun() {}
<!WRONG_MODIFIER_TARGET!>impl<!> var <!UNUSED_VARIABLE!>x<!> = 42
<!PLATFORM_DEFINITION_WITHOUT_DECLARATION, WRONG_MODIFIER_TARGET!>impl<!> class Bar
}
@@ -0,0 +1,41 @@
// -- Module: <m1-common> --
package
public fun foo(): kotlin.Unit
public final class Outer {
public constructor Outer()
public final val bar: kotlin.Int
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public final platform fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public final platform 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
}
}
public typealias Foo = kotlin.String
// -- Module: <m2-jvm> --
package
public fun foo(): kotlin.Unit
public final class Outer {
public constructor Outer()
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 impl 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
}
}