Make getRank abort for unranked type

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
This commit is contained in:
Geoffrey Martin-Noble 2019-05-30 11:01:17 -07:00 committed by Mehdi Amini
parent 29073d999c
commit 97505013c6
2 changed files with 3 additions and 2 deletions

View File

@ -199,7 +199,7 @@ public:
/// 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

View File

@ -125,7 +125,8 @@ unsigned ShapedType::getNumElements() const {
}
int64_t ShapedType::getRank() const {
return hasRank() ? getShape().size() : -1;
assert(hasRank());
return getShape().size();
}
bool ShapedType::hasRank() const { return !isa<UnrankedTensorType>(); }