From dbae5f0bf34d138895cd8d5ef16977e0a5fd6968 Mon Sep 17 00:00:00 2001 From: Su5eD Date: Fri, 19 Jul 2024 11:38:46 +0200 Subject: [PATCH] Fix lambda expansion analysis --- .../adapter/patch/api/MethodTransform.java | 2 +- .../param/ReplaceParametersTransformer.java | 1 + .../MethodTransformationPipeline.java | 5 ++++ .../sinytra/adapter/gradle/ClassAnalyzer.java | 25 ++++++++++--------- 4 files changed, 20 insertions(+), 13 deletions(-) diff --git a/definition/src/main/java/org/sinytra/adapter/patch/api/MethodTransform.java b/definition/src/main/java/org/sinytra/adapter/patch/api/MethodTransform.java index bf116ef..1306e80 100644 --- a/definition/src/main/java/org/sinytra/adapter/patch/api/MethodTransform.java +++ b/definition/src/main/java/org/sinytra/adapter/patch/api/MethodTransform.java @@ -9,7 +9,7 @@ public interface MethodTransform { default Codec codec() { - throw new UnsupportedOperationException("This transform is not serializable"); + throw new UnsupportedOperationException("Transform %s is not serializable".formatted(getClass())); } default Collection getAcceptedAnnotations() { diff --git a/definition/src/main/java/org/sinytra/adapter/patch/transformer/operation/param/ReplaceParametersTransformer.java b/definition/src/main/java/org/sinytra/adapter/patch/transformer/operation/param/ReplaceParametersTransformer.java index 9e9e027..f584650 100644 --- a/definition/src/main/java/org/sinytra/adapter/patch/transformer/operation/param/ReplaceParametersTransformer.java +++ b/definition/src/main/java/org/sinytra/adapter/patch/transformer/operation/param/ReplaceParametersTransformer.java @@ -20,6 +20,7 @@ import static org.sinytra.adapter.patch.PatchInstance.MIXINPATCH; import static org.sinytra.adapter.patch.transformer.operation.param.ParamTransformationUtil.findWrapOperationOriginalCall; +// TODO Just add @Coerce if the types are inherited public record ReplaceParametersTransformer(int index, Type type, boolean upgradeUsage) implements ParameterTransformer { static final Codec CODEC = RecordCodecBuilder.create(in -> in.group( Codec.intRange(0, 255).fieldOf("index").forGetter(ReplaceParametersTransformer::index), diff --git a/definition/src/main/java/org/sinytra/adapter/patch/transformer/pipeline/MethodTransformationPipeline.java b/definition/src/main/java/org/sinytra/adapter/patch/transformer/pipeline/MethodTransformationPipeline.java index 67c3228..95bc50b 100644 --- a/definition/src/main/java/org/sinytra/adapter/patch/transformer/pipeline/MethodTransformationPipeline.java +++ b/definition/src/main/java/org/sinytra/adapter/patch/transformer/pipeline/MethodTransformationPipeline.java @@ -36,6 +36,11 @@ private MethodTransformationPipeline(MethodTransform transform, List codec() { + return CODEC; + } + @Override public Patch.Result apply(ClassNode classNode, MethodNode methodNode, MethodContext methodContext, PatchContext context) { for (MethodTransformFilter filter : filters) { diff --git a/plugin/src/main/java/org/sinytra/adapter/gradle/ClassAnalyzer.java b/plugin/src/main/java/org/sinytra/adapter/gradle/ClassAnalyzer.java index 2e50ade..affd06b 100644 --- a/plugin/src/main/java/org/sinytra/adapter/gradle/ClassAnalyzer.java +++ b/plugin/src/main/java/org/sinytra/adapter/gradle/ClassAnalyzer.java @@ -382,27 +382,28 @@ private void findExpandedLambdas(List patches, Map patches, Map patches, Map> newReplacements = new ArrayList<>(snapshot.replacements()); List> swaps = new ArrayList<>();