aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir/src/ty
diff options
context:
space:
mode:
authorFlorian Diebold <[email protected]>2019-01-21 20:42:19 +0000
committerFlorian Diebold <[email protected]>2019-01-21 20:42:19 +0000
commite45f476d5691a6a0d994eb6f777bbf291348f93e (patch)
treee786aad9c46072c992c634466e834feb64c856fb /crates/ra_hir/src/ty
parente0d8c86563b72e5414cf10fe16da5e88201447e2 (diff)
Fix panic trying to get substs on unknown type
Fixes #585.
Diffstat (limited to 'crates/ra_hir/src/ty')
-rw-r--r--crates/ra_hir/src/ty/tests.rs16
-rw-r--r--crates/ra_hir/src/ty/tests/data/bug_585.txt8
2 files changed, 24 insertions, 0 deletions
diff --git a/crates/ra_hir/src/ty/tests.rs b/crates/ra_hir/src/ty/tests.rs
index 5aa24a29b..dc9b626dc 100644
--- a/crates/ra_hir/src/ty/tests.rs
+++ b/crates/ra_hir/src/ty/tests.rs
@@ -521,6 +521,22 @@ fn test(x: X) {
521 ); 521 );
522} 522}
523 523
524#[test]
525fn bug_585() {
526 check_inference(
527 r#"
528fn test() {
529 X {};
530 match x {
531 A::B {} => (),
532 A::Y() => (),
533 }
534}
535"#,
536 "bug_585.txt",
537 );
538}
539
524fn infer(content: &str) -> String { 540fn infer(content: &str) -> String {
525 let (db, _, file_id) = MockDatabase::with_single_file(content); 541 let (db, _, file_id) = MockDatabase::with_single_file(content);
526 let source_file = db.source_file(file_id); 542 let source_file = db.source_file(file_id);
diff --git a/crates/ra_hir/src/ty/tests/data/bug_585.txt b/crates/ra_hir/src/ty/tests/data/bug_585.txt
new file mode 100644
index 000000000..627702a38
--- /dev/null
+++ b/crates/ra_hir/src/ty/tests/data/bug_585.txt
@@ -0,0 +1,8 @@
1[11; 89) '{ ... } }': ()
2[17; 21) 'X {}': [unknown]
3[27; 87) 'match ... }': ()
4[33; 34) 'x': [unknown]
5[45; 52) 'A::B {}': [unknown]
6[56; 58) '()': ()
7[68; 74) 'A::Y()': [unknown]
8[78; 80) '()': ()