This better matches the other methods in ShapedType which only make sense for ranked types. There's now an explicit hasRank for checking the rank. Actual call sites rarely used the "-1" sentinel to combine checking for rankedness and checking that rank is a certain value. And in most cases they should actually be checking for rankedness at a higher level using type predicates. Using an explicit method is clearer than a sentinel anyway.
--
PiperOrigin-RevId:
250720853
/// If this is a ranked type, return the number of elements. Otherwise, abort.
unsigned getNumElements() const;
- /// If this is a ranked type, return the rank. Otherwise, return -1.
+ /// If this is a ranked type, return the rank. Otherwise, abort.
int64_t getRank() const;
/// Whether or not this is a ranked type. Vector and ranked tensors have a
}
int64_t ShapedType::getRank() const {
- return hasRank() ? getShape().size() : -1;
+ assert(hasRank());
+ return getShape().size();
}
bool ShapedType::hasRank() const { return !isa<UnrankedTensorType>(); }