@@ -286,6 +286,41 @@ async def visit_KeywordCall(self, node: ast.AST) -> None: # noqa: N802
286
286
except VariableError :
287
287
pass
288
288
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
+
289
324
async def visit_ForHeader (self , node : ast .AST ) -> None : # noqa: N802
290
325
from robot .parsing .lexer .tokens import Token as RobotToken
291
326
from robot .parsing .model .statements import ForHeader
0 commit comments