[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
|
||||
|
||||
// TODO: this API is a bit hacky, consider to act somehow else
|
||||
open val visibleCrossFile: Boolean get() = true
|
||||
|
||||
override fun toString(): String =
|
||||
"${if (isLocal) "local " else ""}${render()}"
|
||||
|
||||
@@ -107,6 +110,9 @@ sealed class IdSignature {
|
||||
override val isLocal: Boolean
|
||||
get() = inner.isLocal
|
||||
|
||||
override val visibleCrossFile: Boolean
|
||||
get() = container.visibleCrossFile
|
||||
|
||||
override fun topLevelSignature(): IdSignature {
|
||||
return if (container is FileSignature)
|
||||
CompositeSignature(container, inner.topLevelSignature())
|
||||
@@ -169,6 +175,9 @@ sealed class IdSignature {
|
||||
override val isPubliclyVisible: Boolean
|
||||
get() = true
|
||||
|
||||
override val visibleCrossFile: Boolean
|
||||
get() = false
|
||||
|
||||
override fun isPackageSignature(): Boolean = true
|
||||
|
||||
override fun topLevelSignature(): IdSignature = this
|
||||
@@ -294,6 +303,9 @@ sealed class IdSignature {
|
||||
|
||||
override fun packageFqName(): FqName = container.packageFqName()
|
||||
|
||||
override val visibleCrossFile: Boolean
|
||||
get() = false
|
||||
|
||||
override fun topLevelSignature(): IdSignature {
|
||||
val topLevelContainer = container.topLevelSignature()
|
||||
if (topLevelContainer === container) {
|
||||
@@ -324,6 +336,9 @@ sealed class IdSignature {
|
||||
|
||||
override val isPubliclyVisible: Boolean get() = false
|
||||
|
||||
override val visibleCrossFile: Boolean
|
||||
get() = false
|
||||
|
||||
override val hasTopLevel: Boolean get() = false
|
||||
|
||||
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 visibleCrossFile: Boolean
|
||||
get() = original.visibleCrossFile
|
||||
|
||||
override fun topLevelSignature(): IdSignature = this
|
||||
|
||||
override fun nearestPublicSig(): IdSignature = this
|
||||
|
||||
Reference in New Issue
Block a user