FIR IDE: Add visibility checks to the completion
Visibility checks currently do not work in some cases, for example: - public nested class of private class is seen globally - private_for_this does not work - some other cases I am not yet aware of If `FirVisibilityChecker.isVisible` fix those issues, they will be fixed automatically in the completion
This commit is contained in:
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_COMPARISON
|
||||
object O {
|
||||
private val zzzz = 0
|
||||
}
|
||||
|
||||
Vendored
+1
@@ -1,3 +1,4 @@
|
||||
// FIR_COMPARISON
|
||||
class Some() {
|
||||
public val testPublic = 12
|
||||
protected val testProtected = 12
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_COMPARISON
|
||||
class Some() {
|
||||
public val testPublic = 12
|
||||
protected val testProtected = 12
|
||||
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
// FIR_COMPARISON
|
||||
package test
|
||||
|
||||
open class Base {
|
||||
public val testPublic = 12
|
||||
protected val testProtected = 12
|
||||
private val testPrivate = 12
|
||||
val testPackage = 12
|
||||
|
||||
fun baseClassMember() {
|
||||
class Local {
|
||||
init {
|
||||
<caret>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// EXIST: testPublic, testProtected, testPackage, testPrivate
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
// FIR_COMPARISON
|
||||
package test
|
||||
|
||||
open class Base {
|
||||
public val testPublic = 12
|
||||
protected val testProtected = 12
|
||||
private val testPrivate = 12
|
||||
val testPackage = 12
|
||||
|
||||
fun baseClassMember() {
|
||||
class Local {
|
||||
fun localClassMemeber() {
|
||||
<caret>
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// EXIST: testPublic, testProtected, testPackage, testPrivate
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
// FIR_COMPARISON
|
||||
package test
|
||||
|
||||
open class BaseClass {
|
||||
companion object {
|
||||
val publicVal = 10
|
||||
fun publicFun() {}
|
||||
|
||||
protected val protectedVal = 30
|
||||
protected fun protectedFun() {}
|
||||
|
||||
private val privateVal = 30
|
||||
private fun privateFun() {}
|
||||
}
|
||||
}
|
||||
|
||||
fun test() {
|
||||
BaseClass.<caret>
|
||||
}
|
||||
|
||||
// EXIST: publicVal
|
||||
// EXIST: publicFun
|
||||
|
||||
// ABSENT: protectedVal
|
||||
// ABSENT: protectedFun
|
||||
// ABSENT: privateVal
|
||||
// ABSENT: privateFun
|
||||
+29
@@ -0,0 +1,29 @@
|
||||
// FIR_COMPARISON
|
||||
package test
|
||||
|
||||
open class BaseClass {
|
||||
companion object {
|
||||
val publicVal = 10
|
||||
fun publicFun() {}
|
||||
|
||||
protected val protectedVal = 30
|
||||
protected fun protectedFun() {}
|
||||
|
||||
private val privateVal = 30
|
||||
private fun privateFun() {}
|
||||
}
|
||||
}
|
||||
|
||||
class Subclass : BaseClass() {
|
||||
fun test() {
|
||||
BaseClass.<caret>
|
||||
}
|
||||
}
|
||||
|
||||
// EXIST: publicVal
|
||||
// EXIST: publicFun
|
||||
// EXIST: protectedVal
|
||||
// EXIST: protectedFun
|
||||
|
||||
// ABSENT: privateVal
|
||||
// ABSENT: privateFun
|
||||
@@ -1,3 +1,4 @@
|
||||
// FIR_COMPARISON
|
||||
fun foo(a: java.lang.Thread) {
|
||||
a.na<caret>
|
||||
}
|
||||
|
||||
Vendored
+13
@@ -0,0 +1,13 @@
|
||||
package dependency
|
||||
|
||||
class PublicTopLevelClass {
|
||||
class PublicNestedClass
|
||||
protected class ProtectedNestedClass
|
||||
private class PrivateNestedClass
|
||||
|
||||
inner class PublicInnerClass
|
||||
protected inner class ProtectedInnerClass
|
||||
private inner class PrivateInnerClass
|
||||
}
|
||||
|
||||
private class PrivateTopLevelClass
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
// FIR_COMPARISON
|
||||
package test
|
||||
|
||||
fun usage(): P<caret> {}
|
||||
|
||||
// EXIST: PublicTopLevelClass, PublicNestedClass, PublicInnerClass
|
||||
// ABSENT: PrivateNestedClass, PrivateInnerClass, ProtectedNestedClass, ProtectedInnerClass, PrivateTopLevelClass
|
||||
+3
-1
@@ -3,4 +3,6 @@ package abc
|
||||
val String.helloProp1: Int get() = 1
|
||||
val String.helloProp2: Int get() = 2
|
||||
val Int.helloProp3: Int get() = 3
|
||||
val helloProp4: Int = 4
|
||||
val helloProp4: Int = 4
|
||||
|
||||
private val String.helloPropPrivate get() = 1
|
||||
+4
-2
@@ -1,3 +1,4 @@
|
||||
// FIR_COMPARISON
|
||||
package first
|
||||
|
||||
fun firstFun() {
|
||||
@@ -5,8 +6,9 @@ fun firstFun() {
|
||||
a.hello<caret>
|
||||
}
|
||||
|
||||
// EXIST: { lookupString: "helloProp1", attributes: "bold" }
|
||||
// EXIST: { lookupString: "helloProp2", attributes: "bold" }
|
||||
// EXIST: helloProp1
|
||||
// EXIST: helloProp2
|
||||
// ABSENT: helloProp3
|
||||
// ABSENT: helloProp4
|
||||
// ABSENT: helloPropPrivate
|
||||
// NOTHING_ELSE
|
||||
|
||||
Vendored
+2
@@ -6,3 +6,5 @@ fun globalFun2(): Int = 1
|
||||
object Some {
|
||||
fun globalFun3(): Int = 3
|
||||
}
|
||||
|
||||
private fun globalFunPrivate() {}
|
||||
|
||||
+1
@@ -7,3 +7,4 @@ fun testFun() {
|
||||
|
||||
// EXIST: globalFun1, globalFun2
|
||||
// ABSENT: globalFun3
|
||||
// ABSENT: globalFunPrivate
|
||||
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package dependency
|
||||
|
||||
private class PrivateTopLevelClass {
|
||||
class PublicNestedClass
|
||||
protected class ProtectedNestedClass
|
||||
private class PrivateNestedClass
|
||||
|
||||
inner class PublicInnerClass
|
||||
protected inner class ProtectedInnerClass
|
||||
private inner class PrivateInnerClass
|
||||
}
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package test
|
||||
|
||||
fun usage(): P<caret> {}
|
||||
|
||||
// ABSENT: PrivateTopLevelClass
|
||||
|
||||
// ABSENT: PublicNestedClass
|
||||
// ABSENT: ProtectedNestedClass
|
||||
// ABSENT: PrivateNestedClass
|
||||
|
||||
// ABSENT: PublicInnerClass
|
||||
// ABSENT: ProtectedInnerClass
|
||||
// ABSENT: PrivateInnerClass
|
||||
Vendored
+3
-1
@@ -1,4 +1,6 @@
|
||||
package first
|
||||
|
||||
fun secondFun() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun secondFunPrivate() {}
|
||||
+2
-1
@@ -5,4 +5,5 @@ fun firstFun() {
|
||||
s<caret>
|
||||
}
|
||||
|
||||
// EXIST: secondFun
|
||||
// EXIST: secondFun
|
||||
// ABSENT: secondFunPrivate
|
||||
Reference in New Issue
Block a user