Skip to content

Commit 01fa4a6

Browse files
committed
adjust versiontag compare to align with semver spec
1 parent d35caf2 commit 01fa4a6

File tree

1 file changed

+11
-8
lines changed

1 file changed

+11
-8
lines changed

loader/include/Geode/utils/VersionInfo.hpp

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)