aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty
diff options
context:
space:
mode:
authorbors[bot] <bors[bot]@users.noreply.github.com>2019-01-11 22:49:32 +0000
committerbors[bot] <bors[bot]@users.noreply.github.com>2019-01-11 22:49:32 +0000
commitcca39ebc24d3dfcfcbb2565843ee9f70891cb139 (patch)
treee2996f670efd50d346cfa8dd0f836bcb65aca4dc /crates/ra_hir/src/ty
parentf60153ee9e1d598c170743633448aa3ede8cb72e (diff)
parent1212e59beed25d768bfaf7bb202aa955a87106e9 (diff)
Merge #491
491: Fix assertion error in unification (hopefully) r=flodiebold a=flodiebold Currently, all types that we handle during inference need to be resolved as far as possible at the time. It's maybe too brittle of an invariant; I need to think how we can do this better. This should fix #484 though, I hope (if it's the same case as I managed to reproduce). Co-authored-by: Florian Diebold <[email protected]>
Diffstat (limited to 'crates/ra_hir/src/ty')
-rw-r--r--crates/ra_hir/src/ty/tests.rs12
-rw-r--r--crates/ra_hir/src/ty/tests/data/bug_484.txt5
2 files changed, 17 insertions, 0 deletions
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs
index d8c0af326..815aecda7 100644
--- a/crates/ra_hir/src/ty/tests.rs
+++ b/crates/ra_hir/src/ty/tests.rs
@@ -230,6 +230,18 @@ fn test2(a1: *const A, a2: *mut A) {
230 ); 230 );
231} 231}
232 232
233#[test]
234fn infer_bug_484() {
235 check_inference(
236 r#"
237fn test() {
238 let x = if true {};
239}
240"#,
241 "bug_484.txt",
242 );
243}
244
233fn infer(content: &str) -> String { 245fn infer(content: &str) -> String {
234 let (db, _, file_id) = MockDatabase::with_single_file(content); 246 let (db, _, file_id) = MockDatabase::with_single_file(content);
235 let source_file = db.source_file(file_id); 247 let source_file = db.source_file(file_id);
diff --git a/crates/ra_hir/src/ty/tests/data/bug_484.txt b/crates/ra_hir/src/ty/tests/data/bug_484.txt
new file mode 100644
index 000000000..300530551
--- /dev/null
+++ b/crates/ra_hir/src/ty/tests/data/bug_484.txt
@@ -0,0 +1,5 @@
1[11; 37) '{ l... {}; }': ()
2[20; 21) 'x': ()
3[24; 34) 'if true {}': ()
4[27; 31) 'true': bool
5[32; 34) '{}': ()