Number describes its type as an unbounded range:
Ptr<TypeExpr> Number::type() const {
return Ptr<Range>::make(nullptr, nullptr, location());
}
Offhand, I don’t recall why this would be. It seems much more natural for it to return a type that contains only its exact value. This would allow more precise reasoning elsewhere, especially in upcoming union support.
Numberdescribes its type as an unbounded range:Offhand, I don’t recall why this would be. It seems much more natural for it to return a type that contains only its exact value. This would allow more precise reasoning elsewhere, especially in upcoming
unionsupport.