Skip to content

Commit 7509f8c

Browse files
committed
Avoid crash in covariant calculation
1 parent f936946 commit 7509f8c

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/code_info/ttype/template/standin_type_replacer.rs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -526,8 +526,6 @@ fn replace_atomic<'a>(
526526
None
527527
};
528528

529-
let classlike_info = codebase.classlike_infos.get(name).unwrap();
530-
531529
for (offset, type_param) in type_params.iter_mut().enumerate() {
532530
let input_type_param = match &input_type {
533531
Some(input_inner) => match input_inner {
@@ -562,10 +560,15 @@ fn replace_atomic<'a>(
562560
_ => None,
563561
};
564562

565-
let is_covariant = matches!(
566-
classlike_info.generic_variance.get(&offset),
567-
Some(Variance::Covariant)
568-
);
563+
let is_covariant =
564+
if let Some(classlike_info) = codebase.classlike_infos.get(name) {
565+
matches!(
566+
classlike_info.generic_variance.get(&offset),
567+
Some(Variance::Covariant)
568+
)
569+
} else {
570+
false
571+
};
569572

570573
*type_param = self::replace(
571574
type_param,

0 commit comments

Comments
 (0)