Introduce MultiModuleHighlightingTest

Checks that analysis produces expected diagnostics when configured by real IDEA module
This commit is contained in:
Pavel V. Talanov
2014-08-14 19:56:37 +04:00
parent fbe894ea88
commit d6bd4535fa
7 changed files with 163 additions and 0 deletions
@@ -0,0 +1,8 @@
package foo
public fun accessM1() {
accessM1()
accessM2()
<error>accessM3</error>()
<error>accessM4</error>()
}
@@ -0,0 +1,8 @@
package foo
public fun accessM2() {
accessM1()
accessM2()
<error>accessM3</error>()
<error>accessM4</error>()
}
@@ -0,0 +1,8 @@
package foo
public fun accessM3() {
<error>accessM1</error>()
accessM2()
accessM3()
<error>accessM4</error>()
}
@@ -0,0 +1,8 @@
package foo
public fun accessM4() {
accessM1()
accessM2()
accessM3()
accessM4()
}
@@ -0,0 +1,27 @@
package m1
public class PublicClassInM1
class InternalClassInM1
private class PrivateClassInM1
public fun publicFunInM1() {
}
fun internalFunInM1() {
}
private fun privateFunInM1() {
}
fun testVisibility() {
<error descr="[UNRESOLVED_REFERENCE] Unresolved reference: ClassInM2">ClassInM2</error>()
}
public open class A internal () {
private fun pri() {
}
fun int() {
}
protected fun pro() {
}
public fun pub() {
}
}
@@ -0,0 +1,34 @@
package m2
import m1.*
fun testVisibility() {
PublicClassInM1()
<error descr="[INVISIBLE_MEMBER] Cannot access 'InternalClassInM1': it is 'internal' in 'm1'">InternalClassInM1</error>()
<error descr="[INVISIBLE_MEMBER] Cannot access 'PrivateClassInM1': it is 'private' in 'm1'">PrivateClassInM1</error>()
publicFunInM1()
<error descr="[INVISIBLE_MEMBER] Cannot access 'internalFunInM1': it is 'internal' in 'm1'">internalFunInM1</error>()
<error descr="[INVISIBLE_MEMBER] Cannot access 'privateFunInM1': it is 'private' in 'm1'">privateFunInM1</error>()
}
public class ClassInM2
public class B: <error descr="[INVISIBLE_MEMBER] Cannot access '<init>': it is 'internal' in 'A'">A</error>() {
fun accessA(<warning>a</warning>: A) {}
fun f() {
<error descr="[INVISIBLE_MEMBER] Cannot access 'pri': it is 'invisible_fake' in 'B'">pri</error>()
pro()
pub()
<error descr="[INVISIBLE_MEMBER] Cannot access 'int': it is 'invisible_fake' in 'B'">int</error>()
}
}