Skip to content

Commit 66a0338

Browse files
authored
Fix use wildcard (#64)
* Fix use_wildcard when single `*` (without a path) * Add tests to avoid regressions
1 parent 43d9b84 commit 66a0338

File tree

5 files changed

+52323
-52387
lines changed

5 files changed

+52323
-52387
lines changed

corpus/declarations.txt

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,7 @@ pub use self::greetings::hello;
250250
use sayings::english::{self, greetings as en_greetings, farewells as en_farewells};
251251
use three::{ dot::{one, four} };
252252
use my::{ some::* };
253+
use my::{*};
253254

254255
---
255256

@@ -323,7 +324,12 @@ use my::{ some::* };
323324
path: (identifier)
324325
list: (use_list
325326
(use_wildcard
326-
(identifier))))))
327+
(identifier)))))
328+
(use_declaration
329+
argument: (scoped_use_list
330+
path: (identifier)
331+
list: (use_list
332+
(use_wildcard)))))
327333

328334
============================================
329335
Variable bindings

grammar.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -590,7 +590,10 @@ module.exports = grammar({
590590
field('alias', $.identifier)
591591
),
592592

593-
use_wildcard: $ => seq($._path, '::', '*'),
593+
use_wildcard: $ => seq(
594+
optional(seq($._path, '::')),
595+
'*'
596+
),
594597

595598
parameters: $ => seq(
596599
'(',

src/grammar.json

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -743,7 +743,7 @@
743743
},
744744
{
745745
"type": "PATTERN",
746-
"value": "[/_\\-=->,;:::!=?.@*=/='&=#%=^=+<>|~]+"
746+
"value": "[\\/_\\-=->,;:::!=?.@*=\\/='&=#%=^=+<>|~]+"
747747
},
748748
{
749749
"type": "STRING",
@@ -3299,12 +3299,25 @@
32993299
"type": "SEQ",
33003300
"members": [
33013301
{
3302-
"type": "SYMBOL",
3303-
"name": "_path"
3304-
},
3305-
{
3306-
"type": "STRING",
3307-
"value": "::"
3302+
"type": "CHOICE",
3303+
"members": [
3304+
{
3305+
"type": "SEQ",
3306+
"members": [
3307+
{
3308+
"type": "SYMBOL",
3309+
"name": "_path"
3310+
},
3311+
{
3312+
"type": "STRING",
3313+
"value": "::"
3314+
}
3315+
]
3316+
},
3317+
{
3318+
"type": "BLANK"
3319+
}
3320+
]
33083321
},
33093322
{
33103323
"type": "STRING",

src/node-types.json

Lines changed: 13 additions & 133 deletions
Original file line numberDiff line numberDiff line change
@@ -777,46 +777,6 @@
777777
{
778778
"type": "_expression",
779779
"named": true
780-
},
781-
{
782-
"type": "async_block",
783-
"named": true
784-
},
785-
{
786-
"type": "block",
787-
"named": true
788-
},
789-
{
790-
"type": "for_expression",
791-
"named": true
792-
},
793-
{
794-
"type": "if_expression",
795-
"named": true
796-
},
797-
{
798-
"type": "if_let_expression",
799-
"named": true
800-
},
801-
{
802-
"type": "loop_expression",
803-
"named": true
804-
},
805-
{
806-
"type": "match_expression",
807-
"named": true
808-
},
809-
{
810-
"type": "unsafe_block",
811-
"named": true
812-
},
813-
{
814-
"type": "while_expression",
815-
"named": true
816-
},
817-
{
818-
"type": "while_let_expression",
819-
"named": true
820780
}
821781
]
822782
}
@@ -920,10 +880,6 @@
920880
{
921881
"type": "_pattern",
922882
"named": true
923-
},
924-
{
925-
"type": "identifier",
926-
"named": true
927883
}
928884
]
929885
}
@@ -939,10 +895,6 @@
939895
{
940896
"type": "_expression",
941897
"named": true
942-
},
943-
{
944-
"type": "block",
945-
"named": true
946898
}
947899
]
948900
},
@@ -2419,46 +2371,6 @@
24192371
{
24202372
"type": "_expression",
24212373
"named": true
2422-
},
2423-
{
2424-
"type": "async_block",
2425-
"named": true
2426-
},
2427-
{
2428-
"type": "block",
2429-
"named": true
2430-
},
2431-
{
2432-
"type": "for_expression",
2433-
"named": true
2434-
},
2435-
{
2436-
"type": "if_expression",
2437-
"named": true
2438-
},
2439-
{
2440-
"type": "if_let_expression",
2441-
"named": true
2442-
},
2443-
{
2444-
"type": "loop_expression",
2445-
"named": true
2446-
},
2447-
{
2448-
"type": "match_expression",
2449-
"named": true
2450-
},
2451-
{
2452-
"type": "unsafe_block",
2453-
"named": true
2454-
},
2455-
{
2456-
"type": "while_expression",
2457-
"named": true
2458-
},
2459-
{
2460-
"type": "while_let_expression",
2461-
"named": true
24622374
}
24632375
]
24642376
}
@@ -2762,10 +2674,6 @@
27622674
"type": "_pattern",
27632675
"named": true
27642676
},
2765-
{
2766-
"type": "identifier",
2767-
"named": true
2768-
},
27692677
{
27702678
"type": "self",
27712679
"named": true
@@ -3297,46 +3205,6 @@
32973205
{
32983206
"type": "_expression",
32993207
"named": true
3300-
},
3301-
{
3302-
"type": "async_block",
3303-
"named": true
3304-
},
3305-
{
3306-
"type": "block",
3307-
"named": true
3308-
},
3309-
{
3310-
"type": "for_expression",
3311-
"named": true
3312-
},
3313-
{
3314-
"type": "if_expression",
3315-
"named": true
3316-
},
3317-
{
3318-
"type": "if_let_expression",
3319-
"named": true
3320-
},
3321-
{
3322-
"type": "loop_expression",
3323-
"named": true
3324-
},
3325-
{
3326-
"type": "match_expression",
3327-
"named": true
3328-
},
3329-
{
3330-
"type": "unsafe_block",
3331-
"named": true
3332-
},
3333-
{
3334-
"type": "while_expression",
3335-
"named": true
3336-
},
3337-
{
3338-
"type": "while_let_expression",
3339-
"named": true
33403208
}
33413209
]
33423210
}
@@ -4362,7 +4230,7 @@
43624230
"fields": {},
43634231
"children": {
43644232
"multiple": false,
4365-
"required": true,
4233+
"required": false,
43664234
"types": [
43674235
{
43684236
"type": "crate",
@@ -4794,6 +4662,10 @@
47944662
"type": "block",
47954663
"named": false
47964664
},
4665+
{
4666+
"type": "block_comment",
4667+
"named": true
4668+
},
47974669
{
47984670
"type": "break",
47994671
"named": false
@@ -4850,6 +4722,10 @@
48504722
"type": "field_identifier",
48514723
"named": true
48524724
},
4725+
{
4726+
"type": "float_literal",
4727+
"named": true
4728+
},
48534729
{
48544730
"type": "fn",
48554731
"named": false
@@ -4942,6 +4818,10 @@
49424818
"type": "pub",
49434819
"named": false
49444820
},
4821+
{
4822+
"type": "raw_string_literal",
4823+
"named": true
4824+
},
49454825
{
49464826
"type": "ref",
49474827
"named": false

0 commit comments

Comments
 (0)