Forbid private 'expect' declarations

#KT-19170 Fixed
This commit is contained in:
Alexander Udalov
2017-09-20 14:24:55 +03:00
parent 87b85ce978
commit ecfea9e340
15 changed files with 188 additions and 58 deletions
@@ -0,0 +1,22 @@
// !LANGUAGE: +MultiPlatformProjects
// MODULE: m1-common
// FILE: common.kt
expect class A {
<!EXPECTED_PRIVATE_DECLARATION, JVM:EXPECTED_PRIVATE_DECLARATION!>private<!> fun foo()
<!EXPECTED_PRIVATE_DECLARATION, JVM:EXPECTED_PRIVATE_DECLARATION!>private<!> val bar: String
<!EXPECTED_PRIVATE_DECLARATION, JVM:EXPECTED_PRIVATE_DECLARATION!>private<!> fun Int.memExt(): Any
<!EXPECTED_PRIVATE_DECLARATION, JVM:EXPECTED_PRIVATE_DECLARATION!>private<!> class Nested
}
// MODULE: m1-jvm(m1-common)
// FILE: jvm.kt
actual class A {
private fun <!ACTUAL_MISSING!>foo<!>() {}
private val <!ACTUAL_MISSING!>bar<!>: String = ""
actual private fun Int.memExt(): Any = 0
actual private class Nested
}
@@ -0,0 +1,38 @@
// -- Module: <m1-common> --
package
public final expect class A {
private expect final val bar: kotlin.String
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
private final expect fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
private final expect fun kotlin.Int.memExt(): kotlin.Any
private final expect class 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
}
}
// -- Module: <m1-jvm> --
package
public final actual class A {
public constructor A()
private final val bar: kotlin.String = ""
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
private final fun foo(): kotlin.Unit
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
private final actual fun kotlin.Int.memExt(): kotlin.Any
private final actual 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
}
}
@@ -0,0 +1,18 @@
// !LANGUAGE: +MultiPlatformProjects
// MODULE: m1-common
// FILE: common.kt
<!EXPECTED_PRIVATE_DECLARATION, JVM:EXPECTED_PRIVATE_DECLARATION!>private<!> expect fun foo()
<!EXPECTED_PRIVATE_DECLARATION, JVM:EXPECTED_PRIVATE_DECLARATION!>private<!> expect val bar: String
<!EXPECTED_PRIVATE_DECLARATION, JVM:EXPECTED_PRIVATE_DECLARATION!>private<!> expect fun Int.memExt(): Any
<!EXPECTED_PRIVATE_DECLARATION, JVM:EXPECTED_PRIVATE_DECLARATION!>private<!> expect class Foo
// MODULE: m2-jvm(m1-common)
// FILE: jvm.kt
private actual fun foo() {}
private actual val bar: String = ""
private actual fun Int.memExt(): Any = 0
private actual class Foo
@@ -0,0 +1,27 @@
// -- Module: <m1-common> --
package
private expect val bar: kotlin.String
private expect fun foo(): kotlin.Unit
private expect fun kotlin.Int.memExt(): kotlin.Any
private final expect class 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
}
// -- Module: <m2-jvm> --
package
private actual val bar: kotlin.String = ""
private actual fun foo(): kotlin.Unit
private actual fun kotlin.Int.memExt(): kotlin.Any
private final actual class Foo {
public constructor 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
}