diff options
author | darksv <[email protected]> | 2018-09-15 13:35:30 +0100 |
---|---|---|
committer | darksv <[email protected]> | 2018-09-15 13:35:30 +0100 |
commit | 46cee0415c957f3262ad68cbe617b642f29f347e (patch) | |
tree | d87e17ab13142a1a2d60b1d8012c3b09cc7f2815 /crates/libsyntax2/tests | |
parent | 16ad5384f0c0427922b2d2d05025412fc8e4addf (diff) |
move reparsing tests
Diffstat (limited to 'crates/libsyntax2/tests')
-rw-r--r-- | crates/libsyntax2/tests/test/main.rs | 130 |
1 files changed, 1 insertions, 129 deletions
diff --git a/crates/libsyntax2/tests/test/main.rs b/crates/libsyntax2/tests/test/main.rs index 2b68673c6..5a8879fce 100644 --- a/crates/libsyntax2/tests/test/main.rs +++ b/crates/libsyntax2/tests/test/main.rs | |||
@@ -9,9 +9,8 @@ use std::{ | |||
9 | fmt::Write, | 9 | fmt::Write, |
10 | }; | 10 | }; |
11 | 11 | ||
12 | use test_utils::extract_range; | ||
13 | use libsyntax2::{ | 12 | use libsyntax2::{ |
14 | File, AtomEdit, | 13 | File, |
15 | utils::{dump_tree, check_fuzz_invariants}, | 14 | utils::{dump_tree, check_fuzz_invariants}, |
16 | }; | 15 | }; |
17 | 16 | ||
@@ -24,133 +23,6 @@ fn lexer_tests() { | |||
24 | } | 23 | } |
25 | 24 | ||
26 | #[test] | 25 | #[test] |
27 | fn reparse_test() { | ||
28 | fn do_check(before: &str, replace_with: &str) { | ||
29 | let (range, before) = extract_range(before); | ||
30 | let after = libsyntax2::text_utils::replace_range(before.clone(), range, replace_with); | ||
31 | |||
32 | let fully_reparsed = File::parse(&after); | ||
33 | let incrementally_reparsed = { | ||
34 | let f = File::parse(&before); | ||
35 | let edit = AtomEdit { delete: range, insert: replace_with.to_string() }; | ||
36 | f.incremental_reparse(&edit).expect("cannot incrementally reparse") | ||
37 | }; | ||
38 | assert_eq_text!( | ||
39 | &dump_tree(fully_reparsed.syntax()), | ||
40 | &dump_tree(incrementally_reparsed.syntax()), | ||
41 | ) | ||
42 | } | ||
43 | |||
44 | do_check(r" | ||
45 | fn foo() { | ||
46 | let x = foo + <|>bar<|> | ||
47 | } | ||
48 | ", "baz"); | ||
49 | do_check(r" | ||
50 | fn foo() { | ||
51 | let x = foo<|> + bar<|> | ||
52 | } | ||
53 | ", "baz"); | ||
54 | do_check(r" | ||
55 | struct Foo { | ||
56 | f: foo<|><|> | ||
57 | } | ||
58 | ", ",\n g: (),"); | ||
59 | do_check(r" | ||
60 | fn foo { | ||
61 | let; | ||
62 | 1 + 1; | ||
63 | <|>92<|>; | ||
64 | } | ||
65 | ", "62"); | ||
66 | do_check(r" | ||
67 | mod foo { | ||
68 | fn <|><|> | ||
69 | } | ||
70 | ", "bar"); | ||
71 | do_check(r" | ||
72 | trait Foo { | ||
73 | type <|>Foo<|>; | ||
74 | } | ||
75 | ", "Output"); | ||
76 | do_check(r" | ||
77 | trait Foo { | ||
78 | type<|> Foo<|>; | ||
79 | } | ||
80 | ", "Output"); | ||
81 | do_check(r" | ||
82 | impl IntoIterator<Item=i32> for Foo { | ||
83 | f<|><|> | ||
84 | } | ||
85 | ", "n next("); | ||
86 | do_check(r" | ||
87 | use a::b::{foo,<|>,bar<|>}; | ||
88 | ", "baz"); | ||
89 | do_check(r" | ||
90 | pub enum A { | ||
91 | Foo<|><|> | ||
92 | } | ||
93 | ", "\nBar;\n"); | ||
94 | do_check(r" | ||
95 | foo!{a, b<|><|> d} | ||
96 | ", ", c[3]"); | ||
97 | do_check(r" | ||
98 | fn foo() { | ||
99 | vec![<|><|>] | ||
100 | } | ||
101 | ", "123"); | ||
102 | do_check(r" | ||
103 | extern { | ||
104 | fn<|>;<|> | ||
105 | } | ||
106 | ", " exit(code: c_int)"); | ||
107 | do_check(r"<|><|> | ||
108 | fn foo() -> i32 { | ||
109 | 1 | ||
110 | } | ||
111 | ", "\n\n\n \n"); | ||
112 | do_check(r" | ||
113 | fn foo() -> <|><|> {} | ||
114 | ", " \n"); | ||
115 | do_check(r" | ||
116 | fn <|>foo<|>() -> i32 { | ||
117 | 1 | ||
118 | } | ||
119 | ", "bar"); | ||
120 | do_check(r" | ||
121 | fn aa<|><|>bb() { | ||
122 | |||
123 | } | ||
124 | ", "foofoo"); | ||
125 | do_check(r" | ||
126 | fn aabb /* <|><|> */ () { | ||
127 | |||
128 | } | ||
129 | ", "some comment"); | ||
130 | do_check(r" | ||
131 | fn aabb <|><|> () { | ||
132 | |||
133 | } | ||
134 | ", " \t\t\n\n"); | ||
135 | do_check(r" | ||
136 | trait foo { | ||
137 | // comment <|><|> | ||
138 | } | ||
139 | ", "\n"); | ||
140 | do_check(r" | ||
141 | /// good <|><|>omment | ||
142 | mod { | ||
143 | } | ||
144 | ", "c"); | ||
145 | do_check(r#" | ||
146 | fn -> &str { "Hello<|><|>" } | ||
147 | "#, ", world"); | ||
148 | do_check(r#" | ||
149 | fn -> &str { // "Hello<|><|>" | ||
150 | "#, ", world"); | ||
151 | } | ||
152 | |||
153 | #[test] | ||
154 | fn parser_tests() { | 26 | fn parser_tests() { |
155 | dir_tests(&["parser/inline", "parser/ok", "parser/err"], |text| { | 27 | dir_tests(&["parser/inline", "parser/ok", "parser/err"], |text| { |
156 | let file = File::parse(text); | 28 | let file = File::parse(text); |