parser: make [..] work (#11064)
parent
c30cda3daf
commit
8d2567740b
|
@ -2208,7 +2208,12 @@ fn (mut p Parser) index_expr(left ast.Expr) ast.IndexExpr {
|
||||||
has_low = false
|
has_low = false
|
||||||
// [..end]
|
// [..end]
|
||||||
p.next()
|
p.next()
|
||||||
high := p.expr(0)
|
mut high := ast.empty_expr()
|
||||||
|
mut has_high := false
|
||||||
|
if p.tok.kind != .rsbr {
|
||||||
|
high = p.expr(0)
|
||||||
|
has_high = true
|
||||||
|
}
|
||||||
pos := start_pos.extend(p.tok.position())
|
pos := start_pos.extend(p.tok.position())
|
||||||
p.check(.rsbr)
|
p.check(.rsbr)
|
||||||
return ast.IndexExpr{
|
return ast.IndexExpr{
|
||||||
|
@ -2217,7 +2222,7 @@ fn (mut p Parser) index_expr(left ast.Expr) ast.IndexExpr {
|
||||||
index: ast.RangeExpr{
|
index: ast.RangeExpr{
|
||||||
low: ast.empty_expr()
|
low: ast.empty_expr()
|
||||||
high: high
|
high: high
|
||||||
has_high: true
|
has_high: has_high
|
||||||
pos: pos
|
pos: pos
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,3 +18,10 @@ fn test_for_in_shared_array_named_array() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn test_fixed_array_to_dynamic_array() {
|
||||||
|
y := [1, 2, 3]!
|
||||||
|
mut x := y[..]
|
||||||
|
x << 4
|
||||||
|
assert x.len == 4
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue