core: Fix crashes on invalid subscripting & iterating over non-iterables. #440
|
@ -248,7 +248,17 @@ impl<'a> Fold<()> for Inferencer<'a> {
|
||||||
TypeEnum::TObj { obj_id, .. } if *obj_id == PrimDef::NDArray.id() => {
|
TypeEnum::TObj { obj_id, .. } if *obj_id == PrimDef::NDArray.id() => {
|
||||||
todo!()
|
todo!()
|
||||||
}
|
}
|
||||||
_ => unreachable!(),
|
_ => {
|
||||||
|
// User is attempting to use a for loop to iterate
|
||||||
|
// over a value of an unsupported type.
|
||||||
|
|
||||||
|
let iter_ty = iter.custom.unwrap();
|
||||||
|
let iter_ty_str = self.unifier.stringify(iter_ty);
|
||||||
|
return report_error(
|
||||||
|
format!("'{iter_ty_str}' object is not iterable").as_str(),
|
||||||
|
iter.location,
|
||||||
|
);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
self.unify(list_like_ty, iter.custom.unwrap(), &iter.location)?;
|
self.unify(list_like_ty, iter.custom.unwrap(), &iter.location)?;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue