@@ -433,12 +433,14 @@ def parse_array(src: str, pos: Pos, parse_float: ParseFloat) -> tuple[Pos, list]
433433 return pos + 1 , array
434434
435435
436- def parse_inline_table (src : str , pos : Pos , parse_float : ParseFloat ) -> tuple [Pos , dict ]:
436+ def parse_inline_table ( # noqa: C901
437+ src : str , pos : Pos , parse_float : ParseFloat
438+ ) -> tuple [Pos , dict ]:
437439 pos += 1
438440 nested_dict = NestedDict ()
439441 flags = Flags ()
440442
441- pos = skip_chars (src , pos , TOML_WS )
443+ pos = skip_comments_and_array_ws (src , pos )
442444 if src .startswith ("}" , pos ):
443445 return pos + 1 , nested_dict .dict
444446 while True :
@@ -453,16 +455,18 @@ def parse_inline_table(src: str, pos: Pos, parse_float: ParseFloat) -> tuple[Pos
453455 if key_stem in nest :
454456 raise suffixed_err (src , pos , f"Duplicate inline table key { key_stem !r} " )
455457 nest [key_stem ] = value
456- pos = skip_chars (src , pos , TOML_WS )
458+ pos = skip_comments_and_array_ws (src , pos )
457459 c = src [pos : pos + 1 ]
458460 if c == "}" :
459461 return pos + 1 , nested_dict .dict
460462 if c != "," :
461463 raise suffixed_err (src , pos , "Unclosed inline table" )
464+ pos += 1
465+ pos = skip_comments_and_array_ws (src , pos )
466+ if src .startswith ("}" , pos ):
467+ return pos + 1 , nested_dict .dict
462468 if isinstance (value , (dict , list )):
463469 flags .set (key , Flags .FROZEN , recursive = True )
464- pos += 1
465- pos = skip_chars (src , pos , TOML_WS )
466470
467471
468472def parse_basic_str_escape (
0 commit comments