@@ -616,13 +616,15 @@ def _path_segments(self, base_dir: str) -> list[str]:
616
616
617
617
class TypeLiteral (NodeBase ):
618
618
kindString : Literal ["Type literal" ]
619
+ variant : Literal ["declaration" ]
620
+
619
621
signatures : list ["Signature" ] = []
620
622
indexSignature : "Signature | None" = None
621
623
children : Sequence ["Member" ] = []
622
624
623
625
def render (self , converter : Converter ) -> Iterator [str | ir .TypeXRef ]:
624
626
if self .signatures :
625
- yield from self .signatures [0 ].type . _render_name (converter )
627
+ yield from self .signatures [0 ].render (converter )
626
628
return
627
629
yield "{ "
628
630
index_sig = self .indexSignature
@@ -857,6 +859,23 @@ def _destructure_params(self) -> list[Param]:
857
859
params .extend (self ._destructure_param (p ))
858
860
return params
859
861
862
+ def render (self , converter : Converter ) -> Iterator [str | ir .TypeXRef ]:
863
+ yield "("
864
+
865
+ def inner (param : Param ) -> Iterator [str | ir .TypeXRef ]:
866
+ yield param .name + ": "
867
+ yield from param .type ._render_name (converter )
868
+
869
+ yield from riffle ((inner (param ) for param in self .parameters ), ", " )
870
+
871
+ yield "): "
872
+ ret = self .return_type (converter )[0 ].type
873
+ assert ret
874
+ if isinstance (ret , str ):
875
+ yield ret
876
+ else :
877
+ yield from ret
878
+
860
879
def to_ir (
861
880
self , converter : Converter
862
881
) -> tuple [ir .Function | None , Sequence ["Node" ]]:
@@ -1000,24 +1019,8 @@ def _render_name_root(self, converter: Converter) -> Iterator[str | ir.TypeXRef]
1000
1019
1001
1020
if isinstance (self .declaration , Callable ):
1002
1021
if self .declaration .kindString == "Constructor" :
1003
- yield "{new ("
1004
- else :
1005
- yield "("
1006
- sig = self .declaration .signatures [0 ]
1007
-
1008
- def inner (param : Param ) -> Iterator [str | ir .TypeXRef ]:
1009
- yield param .name + ": "
1010
- yield from param .type ._render_name (converter )
1011
-
1012
- yield from riffle ((inner (param ) for param in sig .parameters ), ", " )
1013
-
1014
- yield "): "
1015
- ret = sig .return_type (converter )[0 ].type
1016
- assert ret
1017
- if isinstance (ret , str ):
1018
- yield ret
1019
- else :
1020
- yield from ret
1022
+ yield "{new "
1023
+ yield from self .declaration .signatures [0 ].render (converter )
1021
1024
if self .declaration .kindString == "Constructor" :
1022
1025
yield "}"
1023
1026
return
0 commit comments