diff options
author | Florian Diebold <[email protected]> | 2019-01-21 20:42:19 +0000 |
---|---|---|
committer | Florian Diebold <[email protected]> | 2019-01-21 20:42:19 +0000 |
commit | e45f476d5691a6a0d994eb6f777bbf291348f93e (patch) | |
tree | e786aad9c46072c992c634466e834feb64c856fb /crates/ra_hir/src/ty | |
parent | e0d8c86563b72e5414cf10fe16da5e88201447e2 (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.rs | 16 | ||||
-rw-r--r-- | crates/ra_hir/src/ty/tests/data/bug_585.txt | 8 |
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] | ||
525 | fn bug_585() { | ||
526 | check_inference( | ||
527 | r#" | ||
528 | fn test() { | ||
529 | X {}; | ||
530 | match x { | ||
531 | A::B {} => (), | ||
532 | A::Y() => (), | ||
533 | } | ||
534 | } | ||
535 | "#, | ||
536 | "bug_585.txt", | ||
537 | ); | ||
538 | } | ||
539 | |||
524 | fn infer(content: &str) -> String { | 540 | fn 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) '()': () | ||