]> gerrit.simantics Code Review - simantics/platform.git/blob
a26ee9d750dbc3493f3345e6ab1433f5e14c9cc8
[simantics/platform.git] /
1 package org.simantics.scl.compiler.constants;
2
3 import org.simantics.scl.compiler.internal.codegen.utils.LocalVariable;
4 import org.cojen.classfile.TypeDesc;
5 import org.simantics.scl.compiler.internal.codegen.utils.MethodBuilder;
6 import org.simantics.scl.compiler.internal.codegen.utils.TransientClassBuilder;
7 import org.simantics.scl.compiler.types.Type;
8
9 public class LocalBoxedArrayElementConstant extends Constant {
10
11     LocalVariable var;
12     int index;
13     
14     public LocalBoxedArrayElementConstant(Type type, LocalVariable var, int index) {
15         super(type);
16         this.var = var;
17         this.index = index;
18     }
19     
20     @Override
21     public void push(MethodBuilder mb) {
22         mb.loadLocal(var);
23         mb.loadConstant(index);
24         mb.loadFromArray(TypeDesc.OBJECT);
25         mb.unbox(type);
26     }
27
28     @Override
29     public Object realizeValue(TransientClassBuilder classBuilder) {
30         throw new UnsupportedOperationException();
31     }
32
33 }