in hot-reload-analysis/src/main/kotlin/org/jetbrains/compose/reload/analysis/MutableApplicationInfoImpl.kt [51:83]
override fun add(info: ClassInfo) {
classIndex[info.classId] = info
methodIndex.putAll(info.methods)
fieldIndex.putAll(info.fields)
val allScopes = info.methods.values.map { it.rootScope }
.withClosure<ScopeInfo> { scope -> scope.children }
/* Fill groupIndex */
allScopes.forEach { scope ->
if (scope.group == null) return@forEach
groupIndex.getOrPut(scope.group) { hashSetOf() }.add(scope)
}
/* Fill superIndex & superIndexInverse */
val superClassifiers = listOfNotNull(info.superClass, *info.superInterfaces.toTypedArray()).toHashSet()
superIndex[info.classId] = superClassifiers
superClassifiers.forEach { superClassifier ->
superIndexInverse.getOrPut(superClassifier) { hashSetOf() }.add(info.classId)
}
/* Fill dependency index */
allScopes.forEach { scope ->
scope.methodDependenciesList.forEach { methodId ->
dependencyIndex.getOrPut(methodId) { hashSetOf() }.add(scope)
}
scope.fieldDependenciesList.forEach { fieldId ->
dependencyIndex.getOrPut(fieldId) { hashSetOf() }.add(scope)
}
}
}