From f2787def2a28e1fe6ce75d60c4ce123b7c723fbf Mon Sep 17 00:00:00 2001 From: ice1000 Date: Sat, 4 Jan 2025 12:07:43 -0500 Subject: [PATCH] free: use freeJava in aya serialization --- .../compiler/serializers/ModuleSerializer.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/jit-compiler/src/main/java/org/aya/compiler/serializers/ModuleSerializer.java b/jit-compiler/src/main/java/org/aya/compiler/serializers/ModuleSerializer.java index bc201c180..1ff00b378 100644 --- a/jit-compiler/src/main/java/org/aya/compiler/serializers/ModuleSerializer.java +++ b/jit-compiler/src/main/java/org/aya/compiler/serializers/ModuleSerializer.java @@ -6,6 +6,8 @@ import kala.collection.mutable.MutableList; import org.aya.compiler.free.FreeClassBuilder; import org.aya.compiler.free.FreeJavaBuilder; +import org.aya.compiler.free.morphism.free.FreeJavaBuilderImpl; +import org.aya.compiler.free.morphism.free.FreeRunner; import org.aya.compiler.free.morphism.source.SourceFreeJavaBuilder; import org.aya.compiler.serializers.MatchySerializer.MatchyData; import org.aya.primitive.ShapeFactory; @@ -14,6 +16,7 @@ import org.aya.syntax.core.repr.CodeShape; import org.aya.syntax.ref.QPath; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.VisibleForTesting; import java.lang.constant.ClassDesc; @@ -36,15 +39,6 @@ public void addMatchy(Matchy clauses, int argsSize, int captureSize) { } } - public static Carrier serialize( - @NotNull ShapeFactory factory, - @NotNull FreeJavaBuilder builder, - @NotNull ModuleResult unit - ) { - return new ModuleSerializer(factory) - .serialize(builder, unit); - } - private final @NotNull ShapeFactory shapeFactory; private final @NotNull MatchyRecorder recorder = new MatchyRecorder(); @@ -85,9 +79,11 @@ private void doSerialize(@NotNull FreeClassBuilder builder, @NotNull TyckDef uni } public String serializeWithBestBuilder(ModuleResult unit) { - return serialize(SourceFreeJavaBuilder.create(), unit); + var freeJava = serialize(FreeJavaBuilderImpl.INSTANCE, unit); + return new FreeRunner<>(SourceFreeJavaBuilder.create()).runFree(freeJava); } + @VisibleForTesting public Carrier serialize(@NotNull FreeJavaBuilder builder, ModuleResult unit) { var desc = ClassDesc.of(getReference(unit.name, null, NameSerializer.NameType.ClassName)); var metadata = new ClassTargetSerializer.CompiledAyaImpl(unit.name,