@@ -43,7 +43,7 @@ fn make_field_type(
43
43
// type to represent them.
44
44
let field_union_name = format ! ( "{}_{}_type" , parent_name, field_name) ;
45
45
let field_union_name = node_types:: escape_name ( & field_union_name) ;
46
- let members: Vec < String > = types
46
+ let members: Set < String > = types
47
47
. iter ( )
48
48
. map ( |t| node_types:: escape_name ( & child_node_type_name ( token_types, t) ) )
49
49
. collect ( ) ;
@@ -151,9 +151,9 @@ fn convert_nodes(nodes: &Vec<node_types::Entry>) -> Vec<dbscheme::Entry> {
151
151
create_containerparent_table( ) ,
152
152
create_source_location_prefix_table( ) ,
153
153
] ;
154
- let mut ast_node_members: Vec < String > = Vec :: new ( ) ;
154
+ let mut ast_node_members: Set < String > = Set :: new ( ) ;
155
155
let mut token_kinds: Map < String , usize > = Map :: new ( ) ;
156
- ast_node_members. push ( node_types:: escape_name ( "token" ) ) ;
156
+ ast_node_members. insert ( node_types:: escape_name ( "token" ) ) ;
157
157
for node in nodes {
158
158
if let node_types:: Entry :: Token { type_name, kind_id } = node {
159
159
if type_name. named {
@@ -170,12 +170,12 @@ fn convert_nodes(nodes: &Vec<node_types::Entry>) -> Vec<dbscheme::Entry> {
170
170
} => {
171
171
// It's a tree-sitter supertype node, for which we create a union
172
172
// type.
173
- let mut members: Vec < String > = Vec :: new ( ) ;
173
+ let mut members: Set < String > = Set :: new ( ) ;
174
174
for n_member in n_members {
175
- members. push ( node_types:: escape_name ( & child_node_type_name (
175
+ members. insert ( node_types:: escape_name ( & child_node_type_name (
176
176
& token_kinds,
177
177
n_member,
178
- ) ) )
178
+ ) ) ) ;
179
179
}
180
180
entries. push ( dbscheme:: Entry :: Union ( dbscheme:: Union {
181
181
name : node_types:: escape_name ( & node_types:: node_type_name (
@@ -199,7 +199,7 @@ fn convert_nodes(nodes: &Vec<node_types::Entry>) -> Vec<dbscheme::Entry> {
199
199
} ] ,
200
200
keysets : None ,
201
201
} ;
202
- ast_node_members. push ( node_types:: escape_name ( & name) ) ;
202
+ ast_node_members. insert ( node_types:: escape_name ( & name) ) ;
203
203
204
204
// If the type also has fields or children, then we create either
205
205
// auxiliary tables or columns in the defining table for them.
@@ -328,7 +328,7 @@ fn write_dbscheme(language: &Language, entries: &[dbscheme::Entry]) -> std::io::
328
328
fn create_location_union ( ) -> dbscheme:: Entry {
329
329
dbscheme:: Entry :: Union ( dbscheme:: Union {
330
330
name : "location" . to_owned ( ) ,
331
- members : vec ! [ "location_default" . to_owned( ) ] ,
331
+ members : vec ! [ "location_default" . to_owned( ) ] . into_iter ( ) . collect ( ) ,
332
332
} )
333
333
}
334
334
@@ -459,7 +459,7 @@ fn create_locations_default_table() -> dbscheme::Entry {
459
459
fn create_sourceline_union ( ) -> dbscheme:: Entry {
460
460
dbscheme:: Entry :: Union ( dbscheme:: Union {
461
461
name : "sourceline" . to_owned ( ) ,
462
- members : vec ! [ "file" . to_owned( ) ] ,
462
+ members : vec ! [ "file" . to_owned( ) ] . into_iter ( ) . collect ( ) ,
463
463
} )
464
464
}
465
465
@@ -503,7 +503,9 @@ fn create_numlines_table() -> dbscheme::Entry {
503
503
fn create_container_union ( ) -> dbscheme:: Entry {
504
504
dbscheme:: Entry :: Union ( dbscheme:: Union {
505
505
name : "container" . to_owned ( ) ,
506
- members : vec ! [ "folder" . to_owned( ) , "file" . to_owned( ) ] ,
506
+ members : vec ! [ "folder" . to_owned( ) , "file" . to_owned( ) ]
507
+ . into_iter ( )
508
+ . collect ( ) ,
507
509
} )
508
510
}
509
511
0 commit comments