]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/elaboration/java/Builtins.java
(refs #7809) Added builtin Pure type to indicate no effects
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / elaboration / java / Builtins.java
index 083c3d58f132afb00f11cb79a5b1dd1ea22ee3e3..e23e378efd668e6c1fbafa87c8ed26c527ea7865 100644 (file)
@@ -100,6 +100,8 @@ public class Builtins extends ConcreteModule {
         addEffectConstructor("Proc", new EffectConstructor(Types.PROC));
         addEffectConstructor("Exception", new EffectConstructor(Types.EXCEPTION));
         
+        addTypeAlias("Pure", TVar.EMPTY_ARRAY, Types.NO_EFFECTS);
+        
         //addTypeDescriptor("->", new StandardTypeConstructor(Kinds.STAR_TO_STAR_TO_STAR, Constants.FUNCTION));
         addTypeDescriptor("[]", new StandardTypeConstructor(Types.LIST, Kinds.STAR_TO_STAR, Constants.LIST));        
         addTypeDescriptor("@", new StandardTypeConstructor(Types.PUNIT, Kinds.STAR, Constants.TUPLE[0]));
@@ -231,7 +233,7 @@ public class Builtins extends ConcreteModule {
                     );
             block.addStatement(apply);
             
-            block.setExit(new Jump(runProcFunction.getReturnCont().createOccurrence(), 
+            block.setExit(new Jump(-1, runProcFunction.getReturnCont().createOccurrence(), 
                     x.createOccurrence()));
             
             runProcFunction.addBlock(block);