X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.scl.compiler%2Fsrc%2Forg%2Fsimantics%2Fscl%2Fcompiler%2Finternal%2Fcodegen%2Fssa%2FSSAModule.java;h=e0dbf214f3a8a9a32c2adcec8c2feb98ab7ae225;hp=9ca2303c00be9a349984721707ebd7d46144491d;hb=a8758de5bc19e5adb3f618d3038743a164f09912;hpb=12d9af17384d960b75d58c3935d2b7b46d93e87b diff --git a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAModule.java b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAModule.java index 9ca2303c0..e0dbf214f 100644 --- a/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAModule.java +++ b/bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/internal/codegen/ssa/SSAModule.java @@ -23,8 +23,6 @@ import org.simantics.scl.compiler.internal.codegen.utils.SSALambdaLiftingContext import org.simantics.scl.compiler.internal.codegen.utils.SSASimplificationContext; import org.simantics.scl.compiler.internal.codegen.utils.SSAValidationContext; import org.simantics.scl.compiler.top.SCLCompilerConfiguration; -import org.simantics.scl.compiler.types.Type; -import org.simantics.scl.runtime.tuple.Tuple2; import gnu.trove.map.hash.THashMap; import gnu.trove.procedure.TObjectObjectProcedure; @@ -32,7 +30,8 @@ import gnu.trove.procedure.TObjectProcedure; public class SSAModule { THashMap functions = new THashMap(); - ArrayList staticFields = new ArrayList(); + ArrayList staticFields = new ArrayList(); + public ArrayList closuresToGenerate = new ArrayList(); public void put(Name name, SCLConstant function) { functions.put(name, function); @@ -169,14 +168,17 @@ public class SSAModule { }); JavaTypeTranslator javaTypeTranslator = moduleBuilder.getJavaTypeTranslator(); - for(Tuple2 tuple : staticFields) { - classFile.addField(Opcodes.ACC_PUBLIC | Opcodes.ACC_STATIC, (String)tuple.c0, - javaTypeTranslator.toTypeDesc((Type)tuple.c1)); + for(StaticField tuple : staticFields) { + classFile.addField(Opcodes.ACC_PUBLIC | Opcodes.ACC_STATIC, tuple.name, + javaTypeTranslator.toTypeDesc(tuple.type)); } classFile.addDefaultConstructor(); moduleBuilder.addClass(classFile); + + for(SSAClosure closure : closuresToGenerate) + closure.generateCode(moduleBuilder); } /** @@ -193,7 +195,7 @@ public class SSAModule { }); } - public void addStaticField(Tuple2 tuple) { + public void addStaticField(StaticField tuple) { staticFields.add(tuple); }