Unnamed repository; edit this file 'description' to name the repository.
internal: more local test for mod item
Aleksey Kladov 2021-09-18
parent 715cd8d · commit 55078c8
-rw-r--r--crates/parser/src/grammar/items.rs46
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0169_mod_item.rast8
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0169_mod_item.rs1
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0170_mod_item_curly.rast12
-rw-r--r--crates/syntax/test_data/parser/inline/ok/0170_mod_item_curly.rs1
-rw-r--r--crates/syntax/test_data/parser/ok/0008_mod_item.rast161
-rw-r--r--crates/syntax/test_data/parser/ok/0008_mod_item.rs7
7 files changed, 119 insertions, 117 deletions
diff --git a/crates/parser/src/grammar/items.rs b/crates/parser/src/grammar/items.rs
index 0c35049da3..af83ba126a 100644
--- a/crates/parser/src/grammar/items.rs
+++ b/crates/parser/src/grammar/items.rs
@@ -309,6 +309,30 @@ fn extern_crate(p: &mut Parser, m: Marker) {
m.complete(p, EXTERN_CRATE);
}
+// test mod_item
+// mod a;
+pub(crate) fn mod_item(p: &mut Parser, m: Marker) {
+ p.bump(T![mod]);
+ name(p);
+ if p.at(T!['{']) {
+ // test mod_item_curly
+ // mod b { }
+ item_list(p);
+ } else if !p.eat(T![;]) {
+ p.error("expected `;` or `{`");
+ }
+ m.complete(p, MODULE);
+}
+
+pub(crate) fn item_list(p: &mut Parser) {
+ assert!(p.at(T!['{']));
+ let m = p.start();
+ p.bump(T!['{']);
+ mod_contents(p, true);
+ p.expect(T!['}']);
+ m.complete(p, ITEM_LIST);
+}
+
pub(crate) fn extern_item_list(p: &mut Parser) {
assert!(p.at(T!['{']));
let m = p.start();
@@ -376,28 +400,6 @@ fn type_alias(p: &mut Parser, m: Marker) {
m.complete(p, TYPE_ALIAS);
}
-pub(crate) fn mod_item(p: &mut Parser, m: Marker) {
- assert!(p.at(T![mod]));
- p.bump(T![mod]);
-
- name(p);
- if p.at(T!['{']) {
- item_list(p);
- } else if !p.eat(T![;]) {
- p.error("expected `;` or `{`");
- }
- m.complete(p, MODULE);
-}
-
-pub(crate) fn item_list(p: &mut Parser) {
- assert!(p.at(T!['{']));
- let m = p.start();
- p.bump(T!['{']);
- mod_contents(p, true);
- p.expect(T!['}']);
- m.complete(p, ITEM_LIST);
-}
-
fn macro_rules(p: &mut Parser, m: Marker) {
assert!(p.at_contextual_kw("macro_rules"));
p.bump_remap(T![macro_rules]);
diff --git a/crates/syntax/test_data/parser/inline/ok/0169_mod_item.rast b/crates/syntax/test_data/parser/inline/ok/0169_mod_item.rast
new file mode 100644
index 0000000000..423eacf92e
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0169_mod_item.rast
@@ -0,0 +1,8 @@
diff --git a/crates/syntax/test_data/parser/inline/ok/0169_mod_item.rs b/crates/syntax/test_data/parser/inline/ok/0169_mod_item.rs
new file mode 100644
index 0000000000..f21af614da
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0169_mod_item.rs
@@ -0,0 +1 @@
+mod a;
diff --git a/crates/syntax/test_data/parser/inline/ok/0170_mod_item_curly.rast b/crates/syntax/test_data/parser/inline/ok/0170_mod_item_curly.rast
new file mode 100644
index 0000000000..33ad9c44f5
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0170_mod_item_curly.rast
@@ -0,0 +1,12 @@
diff --git a/crates/syntax/test_data/parser/inline/ok/0170_mod_item_curly.rs b/crates/syntax/test_data/parser/inline/ok/0170_mod_item_curly.rs
new file mode 100644
index 0000000000..16b1b43e87
--- /dev/null
+++ b/crates/syntax/test_data/parser/inline/ok/0170_mod_item_curly.rs
@@ -0,0 +1 @@
+mod b { }
diff --git a/crates/syntax/test_data/parser/ok/0008_mod_item.rast b/crates/syntax/test_data/parser/ok/0008_mod_item.rast
index 8b1e0a52da..712e153462 100644
--- a/crates/syntax/test_data/parser/ok/0008_mod_item.rast
+++ b/crates/syntax/test_data/parser/ok/0008_mod_item.rast
@@ -1,93 +1,76 @@
diff --git a/crates/syntax/test_data/parser/ok/0008_mod_item.rs b/crates/syntax/test_data/parser/ok/0008_mod_item.rs
index d22993bc15..4ff0d9795c 100644
--- a/crates/syntax/test_data/parser/ok/0008_mod_item.rs
+++ b/crates/syntax/test_data/parser/ok/0008_mod_item.rs
@@ -1,8 +1,3 @@
-mod a;
-
-mod b {
-}
-
mod c {
fn foo() {
}
@@ -14,4 +9,4 @@ mod d {
mod e;
mod f {
}
-} \ No newline at end of file
+}