Example #1
0
func (w *World) compileIndexExpr(n *ast.IndexExpr) Expr {
	x := w.compileExpr(n.X)
	kind := x.Type().Kind()
	if !(kind == reflect.Array || kind == reflect.Slice) {
		panic(err(n.Pos(), "can not index", x.Type()))
	}
	i := typeConv(n.Index.Pos(), w.compileExpr(n.Index), int_t)
	return &index{x, i}
}
func (rp *rewritePackage) indexExprTFunc(indexExpr *ast.IndexExpr) {
	if index, ok := indexExpr.Index.(*ast.BasicLit); ok {
		indexExpr.Index = rp.wrapBasicLitWithT(index)
	}
}