@@ -14,25 +14,27 @@ fn project_root() -> PathBuf {
1414 PathBuf :: from ( dir) . parent ( ) . unwrap ( ) . to_owned ( )
1515}
1616
17- fn class_name ( type_name : & String ) -> String {
18- match type_name. as_str ( ) {
19- "BinExpr" => "BinaryExpr" . to_owned ( ) ,
20- "ElseBranch" => "Expr" . to_owned ( ) ,
21- "Fn" => "Function" . to_owned ( ) ,
22- "Literal" => "LiteralExpr" . to_owned ( ) ,
23- "Type" => "TypeRef" . to_owned ( ) ,
24- _ => type_name. to_owned ( ) ,
25- }
17+ fn class_name ( type_name : & str ) -> String {
18+ let name = match type_name {
19+ "BinExpr" => "BinaryExpr" ,
20+ "ElseBranch" => "Expr" ,
21+ "Fn" => "Function" ,
22+ "Literal" => "LiteralExpr" ,
23+ "Type" => "TypeRef" ,
24+ _ => type_name,
25+ } ;
26+ name. to_owned ( )
2627}
2728
28- fn property_name ( type_name : & String , field_name : & String ) -> String {
29- match ( type_name. as_str ( ) , field_name. as_str ( ) ) {
30- ( "Path" , "segment" ) => "part" . to_owned ( ) ,
31- ( "MatchExpr" , "expr" ) => "scrutinee" . to_owned ( ) ,
32- ( _, "then_branch" ) => "then" . to_owned ( ) ,
33- ( _, "else_branch" ) => "else_" . to_owned ( ) ,
34- _ => field_name. to_owned ( ) ,
35- }
29+ fn property_name ( type_name : & str , field_name : & str ) -> String {
30+ let name = match ( type_name, field_name) {
31+ ( "Path" , "segment" ) => "part" ,
32+ ( "MatchExpr" , "expr" ) => "scrutinee" ,
33+ ( _, "then_branch" ) => "then" ,
34+ ( _, "else_branch" ) => "else_" ,
35+ _ => field_name,
36+ } ;
37+ name. to_owned ( )
3638}
3739
3840fn to_lower_snake_case ( s : & str ) -> String {
@@ -62,7 +64,7 @@ fn write_schema(
6264
6365 for node in & grammar. enums {
6466 let super_classses = if let Some ( cls) = super_types. get ( & node. name ) {
65- let super_classes: Vec < String > = cls. iter ( ) . map ( class_name) . collect ( ) ;
67+ let super_classes: Vec < String > = cls. iter ( ) . map ( |s| class_name ( s ) ) . collect ( ) ;
6668 super_classes. join ( "," )
6769 } else {
6870 "AstNode" . to_owned ( )
@@ -77,7 +79,7 @@ fn write_schema(
7779 }
7880 for node in & grammar. nodes {
7981 let super_classses = if let Some ( cls) = super_types. get ( & node. name ) {
80- let super_classes: Vec < String > = cls. iter ( ) . map ( class_name) . collect ( ) ;
82+ let super_classes: Vec < String > = cls. iter ( ) . map ( |s| class_name ( s ) ) . collect ( ) ;
8183 super_classes. join ( "," )
8284 } else {
8385 "AstNode" . to_owned ( )
0 commit comments