diff options
| author | gingerBill <bill@gingerbill.org> | 2023-09-26 13:02:40 +0100 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2023-09-26 13:02:40 +0100 |
| commit | f4a390201c7eb45206fc383bf4578ed9ddc6b0e2 (patch) | |
| tree | 3781c382da3f50f694a628d92dd7e5eae2e0c1df /src/types.cpp | |
| parent | d358ebd7e65a885e361af37de5143bfe91b222f4 (diff) | |
Fix #2819
Diffstat (limited to 'src/types.cpp')
| -rw-r--r-- | src/types.cpp | 12 |
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: |