Run Tests
./gradlew :native:analysis-api-klib-reader:check
A set of top level KlibDeclarationAddress
can be read from KtLibraryModule
by
fun example(module: KtLibraryModule) { val addresses = module.readKlibDeclarationAddresses() }
Such addresses can be resolved to KtSymbol
s by
addresses.flatMap { address -> address.getSymbols() }
Note: getSymbols
returns a sequence as multiple symbols can live under the same address.
Example of creating a session
val session = buildStandaloneAnalysisAPISession { buildKtModuleProvider { // ... addModule(buildKtLibraryModule { addBinaryRoot(pathToKlib) // .. }) } }
Example analyzing libraries within the session
session.getAllLibraryModules().forEach { module -> analyze(module) { module.readKlibDeclarationAddresses() .flatMap { address -> address.getSymbols() } } }
We are building a klib from the testProject
. This klib will be used to read the addresses. Those addresses will be rendered and compared to !testProject.addresses