foreach ($list as $item) {
work_miracles($item);
}This check uses the context of a subtraction expression as well as knowledge about the Abseil Time types, to infer the type of the second operand of some subtraction expressions in Duration conversions. For example:
absl::ToDoubleSeconds(duration) - foo
can become
absl::ToDoubleSeconds(duration - absl::Seconds(foo))
This ensures that time calculations are done in the proper domain, and also makes it easier to further deduce the types of the second operands to these expressions.
enum class DurationScale : std::int8_t { Hours = 0, Minutes, ...