mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
ast: add elem_type_pos to ChanInit (#14873)
This commit is contained in:
parent
09630dd0bc
commit
42df154399
@ -1271,8 +1271,9 @@ pub mut:
|
||||
|
||||
pub struct ChanInit {
|
||||
pub:
|
||||
pos token.Pos
|
||||
has_cap bool
|
||||
pos token.Pos
|
||||
elem_type_pos token.Pos
|
||||
has_cap bool
|
||||
pub mut:
|
||||
cap_expr Expr
|
||||
typ Type
|
||||
|
@ -3529,7 +3529,7 @@ pub fn (mut c Checker) chan_init(mut node ast.ChanInit) ast.Type {
|
||||
if node.elem_type != 0 {
|
||||
elem_sym := c.table.sym(node.elem_type)
|
||||
if elem_sym.kind == .placeholder {
|
||||
c.error('unknown type `$elem_sym.name`', node.pos)
|
||||
c.error('unknown type `$elem_sym.name`', node.elem_type_pos)
|
||||
}
|
||||
}
|
||||
if node.has_cap {
|
||||
|
@ -1,5 +1,5 @@
|
||||
vlib/v/checker/tests/chan_elem_type_unknown.vv:2:7: error: unknown type `NonExistingType`
|
||||
vlib/v/checker/tests/chan_elem_type_unknown.vv:2:12: error: unknown type `NonExistingType`
|
||||
1 | fn main() {
|
||||
2 | _ := chan NonExistingType{}
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~
|
||||
| ~~~~~~~~~~~~~~~
|
||||
3 | }
|
||||
|
@ -2238,7 +2238,9 @@ pub fn (mut p Parser) name_expr() ast.Expr {
|
||||
if p.tok.lit == 'chan' {
|
||||
first_pos := p.tok.pos()
|
||||
mut last_pos := first_pos
|
||||
mut elem_type_pos := p.peek_tok.pos()
|
||||
chan_type := p.parse_chan_type()
|
||||
elem_type_pos = elem_type_pos.extend(p.prev_tok.pos())
|
||||
mut has_cap := false
|
||||
mut cap_expr := ast.empty_expr()
|
||||
p.check(.lcbr)
|
||||
@ -2265,6 +2267,7 @@ pub fn (mut p Parser) name_expr() ast.Expr {
|
||||
}
|
||||
return ast.ChanInit{
|
||||
pos: first_pos.extend(last_pos)
|
||||
elem_type_pos: elem_type_pos
|
||||
has_cap: has_cap
|
||||
cap_expr: cap_expr
|
||||
typ: chan_type
|
||||
|
Loading…
Reference in New Issue
Block a user