mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
vfmt: support x := chan Name{cap: 123}
This commit is contained in:
parent
1d39116a6e
commit
8f5ca29fcd
@ -804,14 +804,7 @@ pub fn (mut f Fmt) expr(node ast.Expr) {
|
|||||||
f.call_expr(node)
|
f.call_expr(node)
|
||||||
}
|
}
|
||||||
ast.ChanInit {
|
ast.ChanInit {
|
||||||
f.write('chan[')
|
f.chan_init(mut node)
|
||||||
f.write(f.type_to_str(node.elem_type))
|
|
||||||
f.write(']{')
|
|
||||||
if node.has_cap {
|
|
||||||
f.write('cap: ')
|
|
||||||
f.expr(node.cap_expr)
|
|
||||||
}
|
|
||||||
f.write('}')
|
|
||||||
}
|
}
|
||||||
ast.CharLiteral {
|
ast.CharLiteral {
|
||||||
f.write('`$node.val`')
|
f.write('`$node.val`')
|
||||||
@ -1623,6 +1616,21 @@ fn expr_is_single_line(expr ast.Expr) bool {
|
|||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn (mut f Fmt) chan_init(mut it ast.ChanInit) {
|
||||||
|
if it.elem_type == 0 && it.typ > 0 {
|
||||||
|
info := f.table.get_type_symbol(it.typ).chan_info()
|
||||||
|
it.elem_type = info.elem_type
|
||||||
|
}
|
||||||
|
f.write('chan ')
|
||||||
|
f.write(f.type_to_str(it.elem_type))
|
||||||
|
f.write('{')
|
||||||
|
if it.has_cap {
|
||||||
|
f.write('cap: ')
|
||||||
|
f.expr(it.cap_expr)
|
||||||
|
}
|
||||||
|
f.write('}')
|
||||||
|
}
|
||||||
|
|
||||||
pub fn (mut f Fmt) array_init(it ast.ArrayInit) {
|
pub fn (mut f Fmt) array_init(it ast.ArrayInit) {
|
||||||
if it.exprs.len == 0 && it.typ != 0 && it.typ != table.void_type {
|
if it.exprs.len == 0 && it.typ != 0 && it.typ != table.void_type {
|
||||||
// `x := []string`
|
// `x := []string`
|
||||||
|
11
vlib/v/fmt/tests/chan_init_keep.vv
Normal file
11
vlib/v/fmt/tests/chan_init_keep.vv
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import sync
|
||||||
|
|
||||||
|
struct FSMEvent {
|
||||||
|
x int
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
ch_fsm_events := chan FSMEvent{cap: 1000}
|
||||||
|
eprintln('ch_fsm_events.len: $ch_fsm_events.len')
|
||||||
|
eprintln('ch_fsm_events.cap: $ch_fsm_events.cap')
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user