diff options
author | uHOOCCOOHu <[email protected]> | 2019-09-18 17:36:12 +0100 |
---|---|---|
committer | uHOOCCOOHu <[email protected]> | 2019-09-25 23:16:52 +0100 |
commit | 5807e261c27e4964fc6a8d2b8cf02e548292b940 (patch) | |
tree | b6bfef565281c2fec4b584a4e2759ff1c5b417e5 /crates/ra_hir/src/ty/tests/never_type.rs | |
parent | bf161fa3e58d57d9b15bd965405036d834f18595 (diff) |
Support custom `CoerceUnsized`
Split out tests about coercion
Diffstat (limited to 'crates/ra_hir/src/ty/tests/never_type.rs')
-rw-r--r-- | crates/ra_hir/src/ty/tests/never_type.rs | 36 |
1 files changed, 12 insertions, 24 deletions
diff --git a/crates/ra_hir/src/ty/tests/never_type.rs b/crates/ra_hir/src/ty/tests/never_type.rs index b9af918e9..c202f545a 100644 --- a/crates/ra_hir/src/ty/tests/never_type.rs +++ b/crates/ra_hir/src/ty/tests/never_type.rs | |||
@@ -19,12 +19,10 @@ fn infer_never2() { | |||
19 | let t = type_at( | 19 | let t = type_at( |
20 | r#" | 20 | r#" |
21 | //- /main.rs | 21 | //- /main.rs |
22 | trait Foo { fn gen() -> Self; } | 22 | fn gen<T>() -> T { loop {} } |
23 | impl Foo for ! { fn gen() -> Self { loop {} } } | ||
24 | impl Foo for () { fn gen() -> Self { loop {} } } | ||
25 | 23 | ||
26 | fn test() { | 24 | fn test() { |
27 | let a = Foo::gen(); | 25 | let a = gen(); |
28 | if false { a } else { loop {} }; | 26 | if false { a } else { loop {} }; |
29 | a<|>; | 27 | a<|>; |
30 | } | 28 | } |
@@ -38,12 +36,10 @@ fn infer_never3() { | |||
38 | let t = type_at( | 36 | let t = type_at( |
39 | r#" | 37 | r#" |
40 | //- /main.rs | 38 | //- /main.rs |
41 | trait Foo { fn gen() -> Self; } | 39 | fn gen<T>() -> T { loop {} } |
42 | impl Foo for ! { fn gen() -> Self { loop {} } } | ||
43 | impl Foo for () { fn gen() -> Self { loop {} } } | ||
44 | 40 | ||
45 | fn test() { | 41 | fn test() { |
46 | let a = Foo::gen(); | 42 | let a = gen(); |
47 | if false { loop {} } else { a }; | 43 | if false { loop {} } else { a }; |
48 | a<|>; | 44 | a<|>; |
49 | } | 45 | } |
@@ -73,12 +69,10 @@ fn never_type_can_be_reinferred1() { | |||
73 | let t = type_at( | 69 | let t = type_at( |
74 | r#" | 70 | r#" |
75 | //- /main.rs | 71 | //- /main.rs |
76 | trait Foo { fn gen() -> Self; } | 72 | fn gen<T>() -> T { loop {} } |
77 | impl Foo for ! { fn gen() -> Self { loop {} } } | ||
78 | impl Foo for () { fn gen() -> Self { loop {} } } | ||
79 | 73 | ||
80 | fn test() { | 74 | fn test() { |
81 | let a = Foo::gen(); | 75 | let a = gen(); |
82 | if false { loop {} } else { a }; | 76 | if false { loop {} } else { a }; |
83 | a<|>; | 77 | a<|>; |
84 | if false { a }; | 78 | if false { a }; |
@@ -154,8 +148,7 @@ fn test() { | |||
154 | } else { | 148 | } else { |
155 | 3.0 | 149 | 3.0 |
156 | }; | 150 | }; |
157 | i<|> | 151 | i<|>; |
158 | () | ||
159 | } | 152 | } |
160 | "#, | 153 | "#, |
161 | ); | 154 | ); |
@@ -173,8 +166,7 @@ fn test(input: bool) { | |||
173 | } else { | 166 | } else { |
174 | return | 167 | return |
175 | }; | 168 | }; |
176 | i<|> | 169 | i<|>; |
177 | () | ||
178 | } | 170 | } |
179 | "#, | 171 | "#, |
180 | ); | 172 | ); |
@@ -193,8 +185,7 @@ fn test(a: i32) { | |||
193 | 3 => loop {}, | 185 | 3 => loop {}, |
194 | _ => 3.0, | 186 | _ => 3.0, |
195 | }; | 187 | }; |
196 | i<|> | 188 | i<|>; |
197 | () | ||
198 | } | 189 | } |
199 | "#, | 190 | "#, |
200 | ); | 191 | ); |
@@ -213,8 +204,7 @@ fn test(a: i32) { | |||
213 | 3 => 3.0, | 204 | 3 => 3.0, |
214 | _ => return, | 205 | _ => return, |
215 | }; | 206 | }; |
216 | i<|> | 207 | i<|>; |
217 | () | ||
218 | } | 208 | } |
219 | "#, | 209 | "#, |
220 | ); | 210 | ); |
@@ -231,8 +221,7 @@ fn test(a: i32) { | |||
231 | 2 => return, | 221 | 2 => return, |
232 | _ => loop {}, | 222 | _ => loop {}, |
233 | }; | 223 | }; |
234 | i<|> | 224 | i<|>; |
235 | () | ||
236 | } | 225 | } |
237 | "#, | 226 | "#, |
238 | ); | 227 | ); |
@@ -249,8 +238,7 @@ fn test(a: i32) { | |||
249 | 2 => 2.0, | 238 | 2 => 2.0, |
250 | _ => 3.0, | 239 | _ => 3.0, |
251 | }; | 240 | }; |
252 | i<|> | 241 | i<|>; |
253 | () | ||
254 | } | 242 | } |
255 | "#, | 243 | "#, |
256 | ); | 244 | ); |