File tree Expand file tree Collapse file tree 2 files changed +25
-1
lines changed
src/commonMain/kotlin/xyz/wagyourtail/unimined/mapping Expand file tree Collapse file tree 2 files changed +25
-1
lines changed Original file line number Diff line number Diff line change @@ -27,6 +27,9 @@ abstract class InheritanceTree(val tree: AbstractMappingTree) {
2727 abstract val classes: Map <InternalName , ClassInfo >
2828
2929 suspend fun propagate (targets : Set <Namespace >) = coroutineScope {
30+
31+ val classes = classes.filterValues { it.inMappings }
32+
3033 // write classes
3134 classes.values.parallelMap {
3235 it.propagate(targets)
@@ -149,6 +152,27 @@ abstract class InheritanceTree(val tree: AbstractMappingTree) {
149152 interfaces.mapNotNull { this @InheritanceTree.classes[it] }
150153 }
151154
155+ val allParents: List <ClassInfo > by lazy {
156+ buildList {
157+ if (superClass != null ) {
158+ add(superClass!! )
159+ addAll(superClass!! .allParents)
160+ }
161+ for (interfaceClass in interfaceClasses) {
162+ add(interfaceClass)
163+ addAll(interfaceClass.allParents)
164+ }
165+ }
166+ }
167+
168+ val inMappings: Boolean by lazy {
169+ if (tree.getClass(fns, name) != null ) {
170+ true
171+ } else {
172+ allParents.any { it.inMappings }
173+ }
174+ }
175+
152176 private val propagateLock = Mutex ()
153177
154178 /* *
Original file line number Diff line number Diff line change @@ -102,7 +102,7 @@ abstract class MappingResolver<T : MappingResolver<T>>(val name: String) {
102102 abstract fun createForPostProcess (key : String ): T
103103
104104 @JvmOverloads
105- fun postProcessDependency (key : String , intern : T .() -> Unit , postProcess : MappingEntry .() -> Unit = {}) {
105+ fun postProcessDependency (key : String , intern : @Scoped T .() -> Unit , postProcess : MappingEntry .() -> Unit = {}) {
106106 val resolver = createForPostProcess(key)
107107 resolver.intern()
108108
You can’t perform that action at this time.
0 commit comments