aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2023-09-26 13:02:40 +0100
committergingerBill <bill@gingerbill.org>2023-09-26 13:02:40 +0100
commitf4a390201c7eb45206fc383bf4578ed9ddc6b0e2 (patch)
tree3781c382da3f50f694a628d92dd7e5eae2e0c1df /src
parentd358ebd7e65a885e361af37de5143bfe91b222f4 (diff)
Fix #2819
Diffstat (limited to 'src')
-rw-r--r--src/types.cpp12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/types.cpp b/src/types.cpp
index fa244dbc0..f3062365f 100644
--- a/src/types.cpp
+++ b/src/types.cpp
@@ -2646,10 +2646,14 @@ gb_internal bool are_types_identical_internal(Type *x, Type *y, bool check_tuple
return are_types_identical(x->Slice.elem, y->Slice.elem);
case Type_BitSet:
- return are_types_identical(x->BitSet.elem, y->BitSet.elem) &&
- are_types_identical(x->BitSet.underlying, y->BitSet.underlying) &&
- x->BitSet.lower == y->BitSet.lower &&
- x->BitSet.upper == y->BitSet.upper;
+ if (are_types_identical(x->BitSet.elem, y->BitSet.elem) &&
+ are_types_identical(x->BitSet.underlying, y->BitSet.underlying)) {
+ if (is_type_enum(x->BitSet.elem)) {
+ return true;
+ }
+ return x->BitSet.lower == y->BitSet.lower && x->BitSet.upper == y->BitSet.upper;
+ }
+ return false;
case Type_Enum: