@@ -442,7 +442,8 @@ class ArgumentSpec:
442442 var_named : Any
443443 embedded : Any
444444 defaults : Any
445- types : Any
445+ types : Optional [Dict [str , str ]] = None
446+ return_type : Optional [str ] = None
446447
447448 @staticmethod
448449 def from_robot_argument_spec (spec : Any ) -> ArgumentSpec :
@@ -456,7 +457,8 @@ def from_robot_argument_spec(spec: Any) -> ArgumentSpec:
456457 var_named = spec .var_named ,
457458 embedded = spec .embedded if get_robot_version () >= (7 , 0 ) else None ,
458459 defaults = {k : str (v ) for k , v in spec .defaults .items ()} if spec .defaults else {},
459- types = None ,
460+ types = {k : str (v ) for k , v in spec .types .items ()} if get_robot_version () > (7 , 0 ) and spec .types else None ,
461+ return_type = str (spec .return_type ) if get_robot_version () > (7 , 0 ) and spec .return_type else None ,
460462 )
461463
462464 def resolve (
@@ -489,7 +491,7 @@ def resolve(
489491 self .named_only ,
490492 self .var_named ,
491493 self .defaults ,
492- self . types ,
494+ None ,
493495 )
494496 else :
495497 self .__robot_arguments = RobotArgumentSpec (
@@ -502,7 +504,7 @@ def resolve(
502504 self .var_named ,
503505 self .embedded ,
504506 self .defaults ,
505- self . types ,
507+ None ,
506508 )
507509 self .__robot_arguments .name = self .name
508510 if validate :
@@ -553,6 +555,7 @@ class KeywordDoc(SourceEntity):
553555 is_registered_run_keyword : bool = field (default = False , compare = False )
554556 args_to_process : Optional [int ] = field (default = None , compare = False )
555557 deprecated : bool = field (default = False , compare = False )
558+ return_type : Optional [str ] = field (default = None , compare = False )
556559
557560 parent_digest : Optional [str ] = field (default = None , init = False , metadata = {"nosave" : True })
558561 parent : Optional [LibraryDoc ] = field (default = None , init = False , metadata = {"nosave" : True })
@@ -719,6 +722,11 @@ def escape_pipe(s: str) -> str:
719722 f"| { '=' if a .default_value is not None else '' } "
720723 f"| { f'`{ a .default_value !s} `' if a .default_value else '' } |"
721724 )
725+ if self .return_type :
726+ if result :
727+ result += "\n \n "
728+
729+ result += f"**Return Type**: `{ self .return_type } `\n "
722730
723731 if self .tags :
724732 if result :
@@ -1801,6 +1809,7 @@ def get_test_library(
18011809 arguments_spec = ArgumentSpec .from_robot_argument_spec (kw [1 ].arguments )
18021810 if not kw [1 ].is_error_handler
18031811 else None ,
1812+ return_type = str (kw [1 ].arguments .return_type ) if get_robot_version () >= (7 , 0 ) else None ,
18041813 )
18051814 for kw in keyword_docs
18061815 ],
0 commit comments