diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-07-12 10:45:37 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-07-12 10:45:37 +0100 |
commit | 28f0171dbdf51ab02bf3e8090d80dcdf0b733662 (patch) | |
tree | 72dd0e6a6d4cb466c654986a903b974392d3375c /crates/ra_hir_ty/src/tests | |
parent | 1a9d7724dac54510c7b702d11a126364604af61c (diff) | |
parent | 9d114b9707fd3d6aaa3224cd1794e8e49e433f36 (diff) |
Merge #5326
5326: infer: Add type inference support for Union types r=flodiebold a=otavio
This adds the type inference to Union types and add a small test case
for it, ensuring it keeps working in future.
Fixes: #5277
Signed-off-by: Otavio Salvador <[email protected]>
----
#
Co-authored-by: Otavio Salvador <[email protected]>
Diffstat (limited to 'crates/ra_hir_ty/src/tests')
-rw-r--r-- | crates/ra_hir_ty/src/tests/simple.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/crates/ra_hir_ty/src/tests/simple.rs b/crates/ra_hir_ty/src/tests/simple.rs index de63f4cce..6d3e264af 100644 --- a/crates/ra_hir_ty/src/tests/simple.rs +++ b/crates/ra_hir_ty/src/tests/simple.rs | |||
@@ -325,6 +325,29 @@ fn test() { | |||
325 | } | 325 | } |
326 | 326 | ||
327 | #[test] | 327 | #[test] |
328 | fn infer_union() { | ||
329 | assert_snapshot!( | ||
330 | infer(r#" | ||
331 | union MyUnion { | ||
332 | foo: u32, | ||
333 | bar: f32, | ||
334 | } | ||
335 | |||
336 | unsafe fn baz(u: MyUnion) { | ||
337 | let inner = u.foo; | ||
338 | } | ||
339 | "#), | ||
340 | @r###" | ||
341 | 61..62 'u': MyUnion | ||
342 | 73..99 '{ ...foo; }': () | ||
343 | 83..88 'inner': u32 | ||
344 | 91..92 'u': MyUnion | ||
345 | 91..96 'u.foo': u32 | ||
346 | "### | ||
347 | ); | ||
348 | } | ||
349 | |||
350 | #[test] | ||
328 | fn infer_refs() { | 351 | fn infer_refs() { |
329 | assert_snapshot!( | 352 | assert_snapshot!( |
330 | infer(r#" | 353 | infer(r#" |