aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/parser/grammar/items/mod.rs3
-rw-r--r--tests/data/parser/ok/0008_mod_item.txt38
2 files changed, 24 insertions, 17 deletions
diff --git a/src/parser/grammar/items/mod.rs b/src/parser/grammar/items/mod.rs
index 2d9580991..8bb821fb6 100644
--- a/src/parser/grammar/items/mod.rs
+++ b/src/parser/grammar/items/mod.rs
@@ -255,7 +255,8 @@ fn mod_item(p: &mut Parser) {
255 assert!(p.at(MOD_KW)); 255 assert!(p.at(MOD_KW));
256 p.bump(); 256 p.bump();
257 257
258 if p.expect(IDENT) && !p.eat(SEMI) { 258 name(p);
259 if !p.eat(SEMI) {
259 if p.expect(L_CURLY) { 260 if p.expect(L_CURLY) {
260 mod_contents(p, true); 261 mod_contents(p, true);
261 p.expect(R_CURLY); 262 p.expect(R_CURLY);
diff --git a/tests/data/parser/ok/0008_mod_item.txt b/tests/data/parser/ok/0008_mod_item.txt
index 99cc30e98..20321051c 100644
--- a/tests/data/parser/ok/0008_mod_item.txt
+++ b/tests/data/parser/ok/0008_mod_item.txt
@@ -1,24 +1,27 @@
1FILE@[0; 118) 1FILE@[0; 118)
2 MOD_ITEM@[0; 8) 2 MOD_ITEM@[0; 8)
3 MOD_KW@[0; 3) 3 MOD_KW@[0; 3)
4 WHITESPACE@[3; 4) 4 NAME@[3; 5)
5 IDENT@[4; 5) "a" 5 WHITESPACE@[3; 4)
6 IDENT@[4; 5) "a"
6 SEMI@[5; 6) 7 SEMI@[5; 6)
7 WHITESPACE@[6; 8) 8 WHITESPACE@[6; 8)
8 MOD_ITEM@[8; 19) 9 MOD_ITEM@[8; 19)
9 MOD_KW@[8; 11) 10 MOD_KW@[8; 11)
10 WHITESPACE@[11; 12) 11 NAME@[11; 14)
11 IDENT@[12; 13) "b" 12 WHITESPACE@[11; 12)
12 WHITESPACE@[13; 14) 13 IDENT@[12; 13) "b"
14 WHITESPACE@[13; 14)
13 L_CURLY@[14; 15) 15 L_CURLY@[14; 15)
14 WHITESPACE@[15; 16) 16 WHITESPACE@[15; 16)
15 R_CURLY@[16; 17) 17 R_CURLY@[16; 17)
16 WHITESPACE@[17; 19) 18 WHITESPACE@[17; 19)
17 MOD_ITEM@[19; 67) 19 MOD_ITEM@[19; 67)
18 MOD_KW@[19; 22) 20 MOD_KW@[19; 22)
19 WHITESPACE@[22; 23) 21 NAME@[22; 25)
20 IDENT@[23; 24) "c" 22 WHITESPACE@[22; 23)
21 WHITESPACE@[24; 25) 23 IDENT@[23; 24) "c"
24 WHITESPACE@[24; 25)
22 L_CURLY@[25; 26) 25 L_CURLY@[25; 26)
23 FN_ITEM@[26; 52) 26 FN_ITEM@[26; 52)
24 WHITESPACE@[26; 31) 27 WHITESPACE@[26; 31)
@@ -46,9 +49,10 @@ FILE@[0; 118)
46 WHITESPACE@[65; 67) 49 WHITESPACE@[65; 67)
47 MOD_ITEM@[67; 118) 50 MOD_ITEM@[67; 118)
48 MOD_KW@[67; 70) 51 MOD_KW@[67; 70)
49 WHITESPACE@[70; 71) 52 NAME@[70; 73)
50 IDENT@[71; 72) "d" 53 WHITESPACE@[70; 71)
51 WHITESPACE@[72; 73) 54 IDENT@[71; 72) "d"
55 WHITESPACE@[72; 73)
52 L_CURLY@[73; 74) 56 L_CURLY@[73; 74)
53 ATTR@[74; 92) 57 ATTR@[74; 92)
54 WHITESPACE@[74; 79) 58 WHITESPACE@[74; 79)
@@ -61,15 +65,17 @@ FILE@[0; 118)
61 WHITESPACE@[87; 92) 65 WHITESPACE@[87; 92)
62 MOD_ITEM@[92; 103) 66 MOD_ITEM@[92; 103)
63 MOD_KW@[92; 95) 67 MOD_KW@[92; 95)
64 WHITESPACE@[95; 96) 68 NAME@[95; 97)
65 IDENT@[96; 97) "e" 69 WHITESPACE@[95; 96)
70 IDENT@[96; 97) "e"
66 SEMI@[97; 98) 71 SEMI@[97; 98)
67 WHITESPACE@[98; 103) 72 WHITESPACE@[98; 103)
68 MOD_ITEM@[103; 117) 73 MOD_ITEM@[103; 117)
69 MOD_KW@[103; 106) 74 MOD_KW@[103; 106)
70 WHITESPACE@[106; 107) 75 NAME@[106; 109)
71 IDENT@[107; 108) "f" 76 WHITESPACE@[106; 107)
72 WHITESPACE@[108; 109) 77 IDENT@[107; 108) "f"
78 WHITESPACE@[108; 109)
73 L_CURLY@[109; 110) 79 L_CURLY@[109; 110)
74 WHITESPACE@[110; 115) 80 WHITESPACE@[110; 115)
75 R_CURLY@[115; 116) 81 R_CURLY@[115; 116)