aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty/tests.rs
diff options
context:
space:
mode:
authoruHOOCCOOHu <[email protected]>2019-09-11 16:53:41 +0100
committeruHOOCCOOHu <[email protected]>2019-09-11 19:35:09 +0100
commit8c078a01641518a6b093922d4b1d27d1a98bad08 (patch)
tree25060debb1bd0b5905d77a6b4d5f80de07588f94 /crates/ra_hir/src/ty/tests.rs
parent6ce6744e18f25ebcde387178125d820686692df5 (diff)
Infer box expression
Diffstat (limited to 'crates/ra_hir/src/ty/tests.rs')
-rw-r--r--crates/ra_hir/src/ty/tests.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs
index 869ae13f1..9a5f6949d 100644
--- a/crates/ra_hir/src/ty/tests.rs
+++ b/crates/ra_hir/src/ty/tests.rs
@@ -56,6 +56,37 @@ mod future {
56} 56}
57 57
58#[test] 58#[test]
59fn infer_box() {
60 let (mut db, pos) = MockDatabase::with_position(
61 r#"
62//- /main.rs
63
64fn test() {
65 let x = box 1;
66 let t = (x, box x, box &1, box [1]);
67 t<|>;
68}
69
70//- /std.rs
71#[prelude_import] use prelude::*;
72mod prelude {}
73
74mod boxed {
75 pub struct Box<T: ?Sized> {
76 inner: *mut T,
77 }
78}
79
80"#,
81 );
82 db.set_crate_graph_from_fixture(crate_graph! {
83 "main": ("/main.rs", ["std"]),
84 "std": ("/std.rs", []),
85 });
86 assert_eq!("(Box<i32>, Box<Box<i32>>, Box<&i32>, Box<[i32;_]>)", type_at_pos(&db, pos));
87}
88
89#[test]
59fn infer_try() { 90fn infer_try() {
60 let (mut db, pos) = MockDatabase::with_position( 91 let (mut db, pos) = MockDatabase::with_position(
61 r#" 92 r#"