The AbstractType class has a method valueLengthIfFixed() that returns -1 for data types with a variable length and a positive value for types with a fixed length. This is primarily used for efficient serialization and deserialization.
It turns out that there is an inconsistency in types ShortType and ByteType as those are in fact fixed-length types (2 bytes and 1 byte, respectively) but they don't have the valueLengthIfFixed() method overloaded and it returns -1 as if they were of variable length.
It would be good to fix that at some appropriate point, for example, when introducing a new version of SSTables format, to keep the meaning of the function consistent across data types. Saving some bytes in serialized format is a minor but pleasant bonus.