mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
checker: fix condition for checking if tmpl var is inherited
This commit is contained in:
parent
e1c8b07fa5
commit
426e9d1734
@ -3107,14 +3107,15 @@ pub fn (mut c Checker) ident(mut node ast.Ident) ast.Type {
|
|||||||
ast.Var {
|
ast.Var {
|
||||||
// inside vweb tmpl ident positions are meaningless, use the position of the comptime call.
|
// inside vweb tmpl ident positions are meaningless, use the position of the comptime call.
|
||||||
// if the variable is declared before the comptime call then we can assume all is well.
|
// if the variable is declared before the comptime call then we can assume all is well.
|
||||||
// `node.name !in node.scope.objects` checks it's an inherited var (not defined in the tmpl).
|
// `node.name !in node.scope.objects && node.scope.start_pos < c.comptime_call_pos` (inherited)
|
||||||
node_pos := if c.pref.is_vweb && node.name !in node.scope.objects {
|
node_pos := if c.pref.is_vweb && node.name !in node.scope.objects
|
||||||
|
&& node.scope.start_pos < c.comptime_call_pos {
|
||||||
c.comptime_call_pos
|
c.comptime_call_pos
|
||||||
} else {
|
} else {
|
||||||
node.pos.pos
|
node.pos.pos
|
||||||
}
|
}
|
||||||
if node_pos < obj.pos.pos {
|
if node_pos < obj.pos.pos {
|
||||||
c.error('undefined variable `$node.name` (used before declaration)',
|
c.error('undefined variable `$node.name` (used before declaration) # $node_pos < $obj.pos.pos | $node.pos.pos',
|
||||||
node.pos)
|
node.pos)
|
||||||
}
|
}
|
||||||
is_sum_type_cast := obj.smartcasts.len != 0
|
is_sum_type_cast := obj.smartcasts.len != 0
|
||||||
|
Loading…
Reference in New Issue
Block a user