@@ -49,36 +49,38 @@ namespace geode {
4949 }
5050 constexpr bool operator <(VersionTag const & other) const {
5151 if (value == other.value ) {
52+ // order s.t. having number is ranked higher than not having one
53+ // aka alpha < alpha.1 == true
5254 if (number && other.number ) return number < other.number ;
53- if (number) return true ;
54- if (other.number ) return false ;
55+ if (number) return false ;
56+ if (other.number ) return true ;
5557 return false ;
5658 }
5759 return value < other.value ;
5860 }
5961 constexpr bool operator <=(VersionTag const & other) const {
6062 if (value == other.value ) {
6163 if (number && other.number ) return number <= other.number ;
62- if (number) return true ;
63- if (other.number ) return false ;
64+ if (number) return false ;
65+ if (other.number ) return true ;
6466 return true ;
6567 }
6668 return value <= other.value ;
6769 }
6870 constexpr bool operator >(VersionTag const & other) const {
6971 if (value == other.value ) {
7072 if (number && other.number ) return number > other.number ;
71- if (number) return false ;
72- if (other.number ) return true ;
73+ if (number) return true ;
74+ if (other.number ) return false ;
7375 return false ;
7476 }
7577 return value > other.value ;
7678 }
7779 constexpr bool operator >=(VersionTag const & other) const {
7880 if (value == other.value ) {
7981 if (number && other.number ) return number >= other.number ;
80- if (number) return false ;
81- if (other.number ) return true ;
82+ if (number) return true ;
83+ if (other.number ) return false ;
8284 return true ;
8385 }
8486 return value >= other.value ;
@@ -165,6 +167,7 @@ namespace geode {
165167 }
166168
167169 // Apple clang does not support operator<=>! Yippee!
170+ // sidenote: this is no longer true!
168171
169172 constexpr bool operator ==(VersionInfo const & other) const {
170173 return std::tie (m_major, m_minor, m_patch, m_tag) ==
0 commit comments