@@ -286,6 +286,41 @@ async def visit_KeywordCall(self, node: ast.AST) -> None: # noqa: N802
286286 except VariableError :
287287 pass
288288
289+ async def visit_InlineIfHeader (self , node : ast .AST ) -> None : # noqa: N802
290+ from robot .errors import VariableError
291+ from robot .parsing .lexer .tokens import Token as RobotToken
292+ from robot .parsing .model .statements import InlineIfHeader
293+
294+ # TODO analyse "Set Local/Global/Suite Variable"
295+
296+ n = cast (InlineIfHeader , node )
297+
298+ for assign_token in n .get_tokens (RobotToken .ASSIGN ):
299+ variable_token = self .get_variable_token (assign_token )
300+
301+ try :
302+ if variable_token is not None :
303+ if (
304+ self .position is not None
305+ and self .position in range_from_node (n )
306+ and self .position > range_from_token (variable_token ).end
307+ ):
308+ continue
309+
310+ if variable_token .value not in self ._results :
311+ self ._results [variable_token .value ] = LocalVariableDefinition (
312+ name = variable_token .value ,
313+ name_token = strip_variable_token (variable_token ),
314+ line_no = n .lineno ,
315+ col_offset = n .col_offset ,
316+ end_line_no = n .lineno ,
317+ end_col_offset = n .end_col_offset ,
318+ source = self .source ,
319+ )
320+
321+ except VariableError :
322+ pass
323+
289324 async def visit_ForHeader (self , node : ast .AST ) -> None : # noqa: N802
290325 from robot .parsing .lexer .tokens import Token as RobotToken
291326 from robot .parsing .model .statements import ForHeader
0 commit comments