in lib/generator.js [1795:1818]
visitArrayAccess(ast, level) {
assert.equal(ast.type, 'array_access');
let expr;
if (ast.id.tag === DSL.Tag.Tag.VID) {
expr = `$this->${_vid(ast.id)}`;
} else {
expr = `$${_name(ast.id)}`;
}
if (ast.propertyPath && ast.propertyPath.length) {
var current = ast.id.inferred;
for (var i = 0; i < ast.propertyPath.length; i++) {
var name = _name(ast.propertyPath[i]);
if (current.type === 'model') {
expr += `->${name}`;
} else {
expr += `['${name}']`;
}
current = ast.propertyPathTypes[i];
}
}
this.emit(`@${expr}[`, level);
this.visitExpr(ast.accessKey, level);
this.emit(']');
}