@@ -89,7 +89,7 @@ abstract class MappingResolver<T : MappingResolver<T>>(val name: String) {
8989 _entries .values.forEach { it.finalize() }
9090 }
9191
92- fun addDependency (key : String , dependency : MappingEntry ) {
92+ fun addDependency (key : String , dependency : MappingResolver < T >. MappingEntry ) {
9393 if (_entries .containsKey(key)) {
9494 LOGGER .warn { " Overwriting dependency $key " }
9595 }
@@ -133,6 +133,8 @@ abstract class MappingResolver<T : MappingResolver<T>>(val name: String) {
133133
134134 open suspend fun writeCache (key : String , tree : MemoryMappingTree ) {}
135135
136+ open suspend fun afterLoad (tree : MemoryMappingTree ) {}
137+
136138 open suspend fun resolve (): MemoryMappingTree {
137139 if (::resolved.isInitialized) return resolved
138140 return resolveLock.withLock {
@@ -193,7 +195,7 @@ abstract class MappingResolver<T : MappingResolver<T>>(val name: String) {
193195 for (entry in sorted) {
194196 LOGGER .info { " Reading: $entry " }
195197 val visitor =
196- entry.insertInto.fold(resolved!! .nsFiltered((entry.provides.map { it.first } + entry.requires).toSet()) as MappingVisitor ) { acc, it ->
198+ entry.insertInto.fold(resolved.nsFiltered((entry.provides.map { it.first } + entry.requires).toSet()) as MappingVisitor ) { acc, it ->
197199 it(acc)
198200 }
199201 try {
@@ -224,18 +226,20 @@ abstract class MappingResolver<T : MappingResolver<T>>(val name: String) {
224226 LOGGER .info { " Read ${sorted.size} entries in $it " }
225227 }
226228
229+ afterLoad(resolved)
230+
227231 LOGGER .info { " Resolving fields and methods..." }
228232
229233 measureTime {
230- resolved!! .resolveLazyResolvables()
234+ resolved.resolveLazyResolvables()
231235 }.also {
232236 LOGGER .info { " Resolved lazy resolvables in $it " }
233237 }
234238
235239 LOGGER .info { " Propagating..." }
236240
237241 measureTime {
238- resolved = propogator(resolved!! )
242+ resolved = propogator(resolved)
239243 }.also {
240244 LOGGER .info { " Propagated in $it " }
241245 }
0 commit comments