Restrict the set of possible values a given unmaterializable func might return. (By intersecting it with the existing spec.)
(&mut self, func: UnmaterializableFunc, update: ResultSpec<'a>)
| 837 | /// Restrict the set of possible values a given unmaterializable func might return. (By |
| 838 | /// intersecting it with the existing spec.) |
| 839 | pub fn push_unmaterializable(&mut self, func: UnmaterializableFunc, update: ResultSpec<'a>) { |
| 840 | let range = self |
| 841 | .unmaterializables |
| 842 | .entry(func.clone()) |
| 843 | .or_insert_with(|| ResultSpec::has_type(&func.output_type(), true)); |
| 844 | *range = range.clone().intersect(update); |
| 845 | } |
| 846 | |
| 847 | fn eval_result<'b, E>(&self, result: Result<Datum<'b>, E>) -> ResultSpec<'a> { |
| 848 | match result { |