]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.compiler/src/org/simantics/scl/compiler/constants/LocalBoxedArrayElementConstant.java
migrated to svn revision 33108
[simantics/platform.git] / bundles / org.simantics.scl.compiler / src / org / simantics / scl / compiler / constants / LocalBoxedArrayElementConstant.java
1 package org.simantics.scl.compiler.constants;
2
3 import org.cojen.classfile.TypeDesc;
4 import org.simantics.scl.compiler.internal.codegen.utils.LocalVariable;
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 }