1 package org.simantics.scl.compiler.constants.singletons;
3 import org.objectweb.asm.Label;
4 import org.simantics.scl.compiler.constants.Constant;
5 import org.simantics.scl.compiler.internal.codegen.continuations.Cont;
6 import org.simantics.scl.compiler.internal.codegen.references.IVal;
7 import org.simantics.scl.compiler.internal.codegen.utils.MethodBuilder;
8 import org.simantics.scl.compiler.internal.codegen.utils.TransientClassBuilder;
9 import org.simantics.scl.compiler.types.TVar;
10 import org.simantics.scl.compiler.types.Types;
11 import org.simantics.scl.compiler.types.kinds.Kinds;
12 import org.simantics.scl.runtime.tuple.Tuple0;
14 public class TypeProxyConstant extends Constant {
16 private static final TVar A = Types.var(Kinds.STAR);
17 public static final TypeProxyConstant INSTANCE = new TypeProxyConstant();
19 private TypeProxyConstant() {
20 super(Types.forAll(A, Types.apply(Types.TYPE_PROXY, A)));
24 public void push(MethodBuilder mb) {
28 public void deconstruct(MethodBuilder mb, IVal parameter,
29 Cont success, Label failure) {
33 public int constructorTag() {
38 public String toString() {
43 public Object realizeValue(TransientClassBuilder classBuilder) {
44 return Tuple0.INSTANCE;