From df1cfb2dce7e234d9190409f6391c9c5c339d5a5 Mon Sep 17 00:00:00 2001 From: Juuz <6596629+Juuxel@users.noreply.github.com> Date: Thu, 13 Mar 2025 21:59:14 +0200 Subject: [PATCH] Fix MethodInheritanceMappingsMigrator on MIO 0.7 --- .../forge/MethodInheritanceMappingsMigrator.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/forge/MethodInheritanceMappingsMigrator.java b/src/main/java/net/fabricmc/loom/configuration/providers/forge/MethodInheritanceMappingsMigrator.java index 88b00da7..9d8f1ff6 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/forge/MethodInheritanceMappingsMigrator.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/forge/MethodInheritanceMappingsMigrator.java @@ -103,10 +103,14 @@ public final class MethodInheritanceMappingsMigrator implements MappingsMigrator } for (MappingTree.ClassMapping classMapping : mappings.getClasses()) { - if (classMapping.getMethods().isEmpty()) continue; - classMapping.getMethods().removeIf(method -> { - return methodsToRemove.contains(new Pair<>(method.getName(MappingsNamespace.INTERMEDIARY.toString()), method.getDesc(MappingsNamespace.INTERMEDIARY.toString()))); - }); + // TODO: Change if/when MIO supports removals again + for (MappingTree.MethodMapping method : List.copyOf(classMapping.getMethods())) { + var key = new Pair<>(method.getName(MappingsNamespace.INTERMEDIARY.toString()), method.getDesc(MappingsNamespace.INTERMEDIARY.toString())); + + if (methodsToRemove.contains(key)) { + classMapping.removeMethod(method.getSrcName(), method.getSrcDesc()); + } + } } try (Writer writer = Files.newBufferedWriter(entry.path(), StandardOpenOption.CREATE, StandardOpenOption.TRUNCATE_EXISTING)) {