[IR] Add API into IdSignature to filter inaccessible function in IC
This commit is contained in:
committed by
TeamCityServer
parent
35e16d2db6
commit
03b66ab51e
@@ -47,6 +47,9 @@ sealed class IdSignature {
|
|||||||
|
|
||||||
open val isLocal: Boolean get() = !isPubliclyVisible
|
open val isLocal: Boolean get() = !isPubliclyVisible
|
||||||
|
|
||||||
|
// TODO: this API is a bit hacky, consider to act somehow else
|
||||||
|
open val visibleCrossFile: Boolean get() = true
|
||||||
|
|
||||||
override fun toString(): String =
|
override fun toString(): String =
|
||||||
"${if (isLocal) "local " else ""}${render()}"
|
"${if (isLocal) "local " else ""}${render()}"
|
||||||
|
|
||||||
@@ -107,6 +110,9 @@ sealed class IdSignature {
|
|||||||
override val isLocal: Boolean
|
override val isLocal: Boolean
|
||||||
get() = inner.isLocal
|
get() = inner.isLocal
|
||||||
|
|
||||||
|
override val visibleCrossFile: Boolean
|
||||||
|
get() = container.visibleCrossFile
|
||||||
|
|
||||||
override fun topLevelSignature(): IdSignature {
|
override fun topLevelSignature(): IdSignature {
|
||||||
return if (container is FileSignature)
|
return if (container is FileSignature)
|
||||||
CompositeSignature(container, inner.topLevelSignature())
|
CompositeSignature(container, inner.topLevelSignature())
|
||||||
@@ -169,6 +175,9 @@ sealed class IdSignature {
|
|||||||
override val isPubliclyVisible: Boolean
|
override val isPubliclyVisible: Boolean
|
||||||
get() = true
|
get() = true
|
||||||
|
|
||||||
|
override val visibleCrossFile: Boolean
|
||||||
|
get() = false
|
||||||
|
|
||||||
override fun isPackageSignature(): Boolean = true
|
override fun isPackageSignature(): Boolean = true
|
||||||
|
|
||||||
override fun topLevelSignature(): IdSignature = this
|
override fun topLevelSignature(): IdSignature = this
|
||||||
@@ -294,6 +303,9 @@ sealed class IdSignature {
|
|||||||
|
|
||||||
override fun packageFqName(): FqName = container.packageFqName()
|
override fun packageFqName(): FqName = container.packageFqName()
|
||||||
|
|
||||||
|
override val visibleCrossFile: Boolean
|
||||||
|
get() = false
|
||||||
|
|
||||||
override fun topLevelSignature(): IdSignature {
|
override fun topLevelSignature(): IdSignature {
|
||||||
val topLevelContainer = container.topLevelSignature()
|
val topLevelContainer = container.topLevelSignature()
|
||||||
if (topLevelContainer === container) {
|
if (topLevelContainer === container) {
|
||||||
@@ -324,6 +336,9 @@ sealed class IdSignature {
|
|||||||
|
|
||||||
override val isPubliclyVisible: Boolean get() = false
|
override val isPubliclyVisible: Boolean get() = false
|
||||||
|
|
||||||
|
override val visibleCrossFile: Boolean
|
||||||
|
get() = false
|
||||||
|
|
||||||
override val hasTopLevel: Boolean get() = false
|
override val hasTopLevel: Boolean get() = false
|
||||||
|
|
||||||
override fun topLevelSignature(): IdSignature = error("Is not supported for Local ID")
|
override fun topLevelSignature(): IdSignature = error("Is not supported for Local ID")
|
||||||
@@ -345,6 +360,9 @@ sealed class IdSignature {
|
|||||||
|
|
||||||
override val hasTopLevel: Boolean get() = true
|
override val hasTopLevel: Boolean get() = true
|
||||||
|
|
||||||
|
override val visibleCrossFile: Boolean
|
||||||
|
get() = original.visibleCrossFile
|
||||||
|
|
||||||
override fun topLevelSignature(): IdSignature = this
|
override fun topLevelSignature(): IdSignature = this
|
||||||
|
|
||||||
override fun nearestPublicSig(): IdSignature = this
|
override fun nearestPublicSig(): IdSignature = this
|
||||||
|
|||||||
Reference in New Issue
Block a user