1 package org.simantics.scl.compiler.internal.codegen.references;
3 import org.simantics.scl.compiler.internal.codegen.utils.MethodBuilder;
4 import org.simantics.scl.compiler.internal.codegen.utils.TransientClassBuilder;
5 import org.simantics.scl.compiler.types.Type;
6 import org.simantics.scl.compiler.types.util.Typed;
8 public interface IVal extends Typed {
10 ValRef createOccurrence();
11 ValRef createOccurrence(Type ... parameters);
13 IVal createSpecialization(Type ... parameters);
15 void push(MethodBuilder mb);
16 Type apply(MethodBuilder mb, Type[] typeParameters, Val ... parameters);
18 Object realizeValue(TransientClassBuilder classBuilder);
19 void setLabel(String label);