aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src/tests/coercion.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2019-12-20 17:18:52 +0000
committerGitHub <[email protected]>2019-12-20 17:18:52 +0000
commit99d6f544f2a590d3feef47ce62d5cd9a8b463a47 (patch)
treeae4e2dd0ae2c62baf79ec1197f5ec5f94a7645e5 /crates/ra_hir_ty/src/tests/coercion.rs
parentcfc50ff160d0af2ce5cd931c6d41161abfdb2fbd (diff)
parent2a8c9100bfb1294a469bc039a5b9597eabed7073 (diff)
Merge #2616
2616: Handle closure return types r=flodiebold a=flodiebold Fixes #2547. Co-authored-by: Florian Diebold <[email protected]>
Diffstat (limited to 'crates/ra_hir_ty/src/tests/coercion.rs')
-rw-r--r--crates/ra_hir_ty/src/tests/coercion.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/crates/ra_hir_ty/src/tests/coercion.rs b/crates/ra_hir_ty/src/tests/coercion.rs
index ac9e3872a..33d6ca403 100644
--- a/crates/ra_hir_ty/src/tests/coercion.rs
+++ b/crates/ra_hir_ty/src/tests/coercion.rs
@@ -440,3 +440,34 @@ fn test() {
440 "### 440 "###
441 ); 441 );
442} 442}
443
444#[test]
445fn closure_return_coerce() {
446 assert_snapshot!(
447 infer_with_mismatches(r#"
448fn foo() {
449 let x = || {
450 if true {
451 return &1u32;
452 }
453 &&1u32
454 };
455}
456"#, true),
457 @r###"
458 [10; 106) '{ ... }; }': ()
459 [20; 21) 'x': || -> &u32
460 [24; 103) '|| { ... }': || -> &u32
461 [27; 103) '{ ... }': &u32
462 [37; 82) 'if tru... }': ()
463 [40; 44) 'true': bool
464 [45; 82) '{ ... }': !
465 [59; 71) 'return &1u32': !
466 [66; 71) '&1u32': &u32
467 [67; 71) '1u32': u32
468 [91; 97) '&&1u32': &&u32
469 [92; 97) '&1u32': &u32
470 [93; 97) '1u32': u32
471 "###
472 );
473}