我目前正在为给定语言编写一个应编译为Java虚拟机的编译器。
我目前正在使用数组,并且使用我的语言编写的以下代码遇到了以下问题
package foo
func main() {
var i int[2];
i[0] = 5;
}
当前正在编译为
.class public test
.super java/lang/Object
.method public static main([Ljava/lang/String;)V
ldc 2
newarray int
astore 0
aload 0
ldc 0
ldc 5
iastore 0
return
.limit locals 2 ;over estimate
.limit stack 20 ;over estimate
.end method
然后抛出以下错误
test.j:11: JAS Error Bad arguments for instruction iastore.
r
^
现在累积到https://cs.au.dk/~mis/dOvs/jvmspec/ref--20.html的堆栈应该看起来像
| value |
| index |
|array ref|
_________
我做了什么,所以我的问题是这个错误指的是什么?