diff options
author | darksv <[email protected]> | 2018-09-10 19:14:09 +0100 |
---|---|---|
committer | darksv <[email protected]> | 2018-09-10 19:14:09 +0100 |
commit | 64d07c1bd475c4945db8d7cd1fa1a61e467b079b (patch) | |
tree | 3184113f1d146e887eae6d667ff9c16b2138160b /crates/libsyntax2/tests/test | |
parent | 4f647096665b2ca3725ba1f7415a21fbc46044bb (diff) |
Implement reparsing for remaining blocks
Diffstat (limited to 'crates/libsyntax2/tests/test')
-rw-r--r-- | crates/libsyntax2/tests/test/main.rs | 61 |
1 files changed, 46 insertions, 15 deletions
diff --git a/crates/libsyntax2/tests/test/main.rs b/crates/libsyntax2/tests/test/main.rs index 014faa2c6..24058efa9 100644 --- a/crates/libsyntax2/tests/test/main.rs +++ b/crates/libsyntax2/tests/test/main.rs | |||
@@ -24,21 +24,6 @@ fn lexer_tests() { | |||
24 | } | 24 | } |
25 | 25 | ||
26 | #[test] | 26 | #[test] |
27 | fn parser_tests() { | ||
28 | dir_tests(&["parser/inline", "parser/ok", "parser/err"], |text| { | ||
29 | let file = File::parse(text); | ||
30 | dump_tree(file.syntax()) | ||
31 | }) | ||
32 | } | ||
33 | |||
34 | #[test] | ||
35 | fn parser_fuzz_tests() { | ||
36 | for (_, text) in collect_tests(&["parser/fuzz-failures"]) { | ||
37 | check_fuzz_invariants(&text) | ||
38 | } | ||
39 | } | ||
40 | |||
41 | #[test] | ||
42 | fn reparse_test() { | 27 | fn reparse_test() { |
43 | fn do_check(before: &str, replace_with: &str) { | 28 | fn do_check(before: &str, replace_with: &str) { |
44 | let (range, before) = extract_range(before); | 29 | let (range, before) = extract_range(before); |
@@ -73,6 +58,52 @@ fn foo { | |||
73 | <|>92<|>; | 58 | <|>92<|>; |
74 | } | 59 | } |
75 | ", "62"); | 60 | ", "62"); |
61 | do_check(r" | ||
62 | mod foo { | ||
63 | fn <|><|> | ||
64 | } | ||
65 | ", "bar"); | ||
66 | do_check(r" | ||
67 | trait Foo { | ||
68 | type <|>Foo<|>; | ||
69 | } | ||
70 | ", "Output"); | ||
71 | do_check(r" | ||
72 | impl IntoIterator<Item=i32> for Foo { | ||
73 | f<|><|> | ||
74 | } | ||
75 | ", "n next("); | ||
76 | do_check(r" | ||
77 | use a::b::{foo,<|>,bar<|>}; | ||
78 | ", "baz"); | ||
79 | do_check(r" | ||
80 | pub enum A { | ||
81 | Foo<|><|> | ||
82 | } | ||
83 | ", "\nBar;\n"); | ||
84 | do_check(r" | ||
85 | foo!{a, b<|><|> d} | ||
86 | ", ", c[3]"); | ||
87 | do_check(r" | ||
88 | extern { | ||
89 | fn<|>;<|> | ||
90 | } | ||
91 | ", " exit(code: c_int)"); | ||
92 | } | ||
93 | |||
94 | #[test] | ||
95 | fn parser_tests() { | ||
96 | dir_tests(&["parser/inline", "parser/ok", "parser/err"], |text| { | ||
97 | let file = File::parse(text); | ||
98 | dump_tree(file.syntax()) | ||
99 | }) | ||
100 | } | ||
101 | |||
102 | #[test] | ||
103 | fn parser_fuzz_tests() { | ||
104 | for (_, text) in collect_tests(&["parser/fuzz-failures"]) { | ||
105 | check_fuzz_invariants(&text) | ||
106 | } | ||
76 | } | 107 | } |
77 | 108 | ||
78 | 109 | ||