Files
kotlin-fork/compiler/testData/codegen/box/mangling/internal.kt
T
Anton Bannykh 2e9a59819a JS: support internal visibility from friend modules
Friend modules should be provided using the -Xfriend-modules flag
in the same format as -libraries. No manual configuration required for
JPS, Gradle and Maven plugins.

Friend modules could be switched off using the -Xfriend-modules-disabled
flag. Doing that will
  * prevent internal declarations from being exported,
  * values provided by -Xfriend-modules ignored,
  * raise a compilation error on attemps to use internal declarations from other modules

Fixes #KT-15135 and #KT-16568.
2017-05-04 21:44:17 +03:00

37 lines
643 B
Kotlin
Vendored

// MODULE: lib
// FILE: lib.kt
package lib
internal fun foo() = 1
internal val bar = 2
internal class A {
internal fun baz(a: Int): Int {
return a * 10
}
internal val foo = 3
internal inner class B {
internal fun foo() = 4
}
}
// MODULE: main(lib)(lib)
// FILE: main.kt
package main
import lib.*
fun box(): String {
if (foo() != 1) return "fail 1: ${foo()}"
if (bar != 2) return "fail 2: ${bar}"
val a = A()
if (a.baz(10) != 100) return "fail 3: ${a.baz(10)}"
if (a.foo != 3) return "fail 4: ${a.foo}"
if (a.B().foo() != 4) return "fail 5: ${a.B().foo()}"
return "OK"
}