[FIR2IR] Make Fir2IrBindableSymbol public API

This commit is contained in:
Mikhail Glukhikh
2020-06-24 18:17:47 +03:00
parent ca5e560f1f
commit efd614194b
2 changed files with 14 additions and 1 deletions
@@ -32,7 +32,7 @@ abstract class Fir2IrBindableSymbol<out D : DeclarationDescriptor, B : IrSymbolO
}
}
override val isPublicApi: Boolean = false
override val isPublicApi: Boolean = true
override val isBound: Boolean
get() = _owner != null
@@ -1001,6 +1001,7 @@ open class SymbolTable(
throw IllegalArgumentException("Unexpected value descriptor: $value")
}
@OptIn(ObsoleteDescriptorBasedAPI::class)
fun wrappedTopLevelCallableDescriptors(): Set<DescriptorWithContainerSource> {
val result = mutableSetOf<DescriptorWithContainerSource>()
for (descriptor in simpleFunctionSymbolTable.descriptorToSymbol.keys) {
@@ -1008,11 +1009,23 @@ open class SymbolTable(
result.add(descriptor)
}
}
for (symbol in simpleFunctionSymbolTable.idSigToSymbol.values) {
val descriptor = symbol.descriptor
if (descriptor is WrappedFunctionDescriptorWithContainerSource && symbol.owner.parent !is IrClass) {
result.add(descriptor)
}
}
for (descriptor in propertySymbolTable.descriptorToSymbol.keys) {
if (descriptor is WrappedPropertyDescriptorWithContainerSource && descriptor.owner.parent !is IrClass) {
result.add(descriptor)
}
}
for (symbol in propertySymbolTable.idSigToSymbol.values) {
val descriptor = symbol.descriptor
if (descriptor is WrappedPropertyDescriptorWithContainerSource && symbol.owner.parent !is IrClass) {
result.add(descriptor)
}
}
return result
}