add test for check access to internal elements from another module

#KT-9178 Fixed
This commit is contained in:
Michael Nedzelsky
2015-09-21 23:06:22 +03:00
parent e86bf03e76
commit 4d9eaf19c3
7 changed files with 125 additions and 0 deletions
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="jdk" jdkName="IDEA_JDK" jdkType="JavaSDK" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="module1" />
<orderEntry type="library" name="KotlinRuntime" level="project" />
</component>
</module>
@@ -0,0 +1,9 @@
package test
internal open class InternalClass2
abstract class ClassA2(internal val member: Int)
abstract class ClassB2 {
internal abstract val member: Int
}
@@ -0,0 +1,29 @@
// ERROR: 'internal open val member: kotlin.Int defined in test.ClassBB1' has no access to 'internal abstract val member: kotlin.Int defined in test.ClassB1', so it cannot override it
// ERROR: Cannot access 'InternalClass1': it is 'internal' in 'test'
// ERROR: Cannot access 'member': it is 'invisible_fake' in 'ClassAA1'
package test
// InternalClass1, ClassA1, ClassB1 are in module1
class ClassInheritedFromInternal1: InternalClass1()
class ClassAA1 : ClassA1(10)
class ClassBB1 : ClassB1() {
internal override val member = 10
}
// InternalClass2, ClassA2, ClassB2 are in module2
class ClassInheritedFromInternal2: InternalClass2()
class ClassAA2 : ClassA2(10)
class ClassBB2 : ClassB2() {
internal override val member = 10
}
fun f() {
val x1 = ClassAA1().member
val x2 = ClassAA2().member
}