File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -1368,8 +1368,32 @@ impl Unparser {
13681368 self . write_str ( name) ;
13691369 }
13701370
1371- fn unparse_pattern_match_as ( & mut self , _node : & PatternMatchAs < TextRange > ) {
1372- // TODO
1371+ fn unparse_pattern_match_as ( & mut self , node : & PatternMatchAs < TextRange > ) {
1372+ match & node. name {
1373+ Some ( name) => match & node. pattern {
1374+ Some ( pattern) => {
1375+ let with_parens = self . precedence_level > Precedence :: Test . value ( ) ;
1376+ if with_parens {
1377+ self . write_str ( "(" ) ;
1378+ }
1379+ self . with_precedence ( Precedence :: Bor , |prec_self| {
1380+ prec_self. unparse_pattern ( pattern) ;
1381+ } ) ;
1382+ self . write_str ( " as " ) ;
1383+ self . write_str ( name) ;
1384+
1385+ if with_parens {
1386+ self . write_str ( ")" ) ;
1387+ }
1388+ }
1389+ None => {
1390+ self . write_str ( name) ;
1391+ }
1392+ } ,
1393+ None => {
1394+ self . write_str ( "_" ) ;
1395+ }
1396+ } ;
13731397 }
13741398
13751399 fn unparse_pattern_match_or ( & mut self , node : & PatternMatchOr < TextRange > ) {
Original file line number Diff line number Diff line change 1+ name_2 = 2
2+ name_5 = 5
3+
4+
5+ class MatchThis :
6+ field_1 = "Test1"
7+ field_2 = "Test2"
8+
9+
10+ match {name_5 : name_2 }:
11+ case [value_1 , * rest ] if []:
12+ print (value_1 , * rest )
13+ case (value_1 , * rest ) if []:
14+ print (value_1 , * rest )
15+ case MatchThis (field_1 = field1_value , field_2 = field2_value ):
16+ print (field1_value , field2_value )
17+ case {"field_1" : field1_value , "field_2" : field2_value , ** kwargs }:
18+ print (field1_value , field2_value , ** kwargs ) # type: ignore
19+ case _ if lambda * name_4 , ** name_2 : name_5 : # type: ignore
20+ pass
You can’t perform that action at this time.
0 commit comments