diff options
Diffstat (limited to 'crates/ra_hir/src/ty')
-rw-r--r-- | crates/ra_hir/src/ty/snapshots/tests__infer_std_crash_5.snap | 30 | ||||
-rw-r--r-- | crates/ra_hir/src/ty/tests.rs | 25 |
2 files changed, 55 insertions, 0 deletions
diff --git a/crates/ra_hir/src/ty/snapshots/tests__infer_std_crash_5.snap b/crates/ra_hir/src/ty/snapshots/tests__infer_std_crash_5.snap new file mode 100644 index 000000000..6bbf59fb6 --- /dev/null +++ b/crates/ra_hir/src/ty/snapshots/tests__infer_std_crash_5.snap | |||
@@ -0,0 +1,30 @@ | |||
1 | --- | ||
2 | created: "2019-02-09T20:28:37.294693728Z" | ||
3 | creator: [email protected] | ||
4 | source: crates/ra_hir/src/ty/tests.rs | ||
5 | expression: "&result" | ||
6 | --- | ||
7 | [27; 323) '{ ... } }': () | ||
8 | [33; 321) 'for co... }': () | ||
9 | [37; 44) 'content': &[unknown] | ||
10 | [48; 61) 'doesnt_matter': [unknown] | ||
11 | [62; 321) '{ ... }': () | ||
12 | [76; 80) 'name': &&[unknown] | ||
13 | [83; 167) 'if doe... }': &&[unknown] | ||
14 | [86; 99) 'doesnt_matter': bool | ||
15 | [100; 129) '{ ... }': &&[unknown] | ||
16 | [114; 119) 'first': &&[unknown] | ||
17 | [135; 167) '{ ... }': &&[unknown] | ||
18 | [149; 157) '&content': &&[unknown] | ||
19 | [150; 157) 'content': &[unknown] | ||
20 | [182; 189) 'content': &&[unknown] | ||
21 | [192; 314) 'if ICE... }': &&[unknown] | ||
22 | [195; 232) 'ICE_RE..._VALUE': [unknown] | ||
23 | [195; 248) 'ICE_RE...&name)': bool | ||
24 | [242; 247) '&name': &&&[unknown] | ||
25 | [243; 247) 'name': &&[unknown] | ||
26 | [249; 277) '{ ... }': &&[unknown] | ||
27 | [263; 267) 'name': &&[unknown] | ||
28 | [283; 314) '{ ... }': &[unknown] | ||
29 | [297; 304) 'content': &[unknown] | ||
30 | |||
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs index e088df97c..8cc771084 100644 --- a/crates/ra_hir/src/ty/tests.rs +++ b/crates/ra_hir/src/ty/tests.rs | |||
@@ -693,6 +693,31 @@ pub fn primitive_type() { | |||
693 | ); | 693 | ); |
694 | } | 694 | } |
695 | 695 | ||
696 | #[test] | ||
697 | fn infer_std_crash_5() { | ||
698 | // taken from rustc | ||
699 | check_inference( | ||
700 | "infer_std_crash_5", | ||
701 | r#" | ||
702 | fn extra_compiler_flags() { | ||
703 | for content in doesnt_matter { | ||
704 | let name = if doesnt_matter { | ||
705 | first | ||
706 | } else { | ||
707 | &content | ||
708 | }; | ||
709 | |||
710 | let content = if ICE_REPORT_COMPILER_FLAGS_STRIP_VALUE.contains(&name) { | ||
711 | name | ||
712 | } else { | ||
713 | content | ||
714 | }; | ||
715 | } | ||
716 | } | ||
717 | "#, | ||
718 | ); | ||
719 | } | ||
720 | |||
696 | fn infer(content: &str) -> String { | 721 | fn infer(content: &str) -> String { |
697 | let (db, _, file_id) = MockDatabase::with_single_file(content); | 722 | let (db, _, file_id) = MockDatabase::with_single_file(content); |
698 | let source_file = db.parse(file_id); | 723 | let source_file = db.parse(file_id); |