summary refs log tree commit diff stats
path: root/tests/int
diff options
context:
space:
mode:
authormetagn <metagngn@gmail.com>2024-09-29 11:23:59 +0300
committerGitHub <noreply@github.com>2024-09-29 10:23:59 +0200
commitb0e6d28782ce8c3d8e0b4a64e01f21d6f900648f (patch)
treeacc9c48b9b42049f4eba5d8eff1961943f2b8895 /tests/int
parent7974a2208c848440cc5188ee3f38f0432b2ee1db (diff)
downloadNim-b0e6d28782ce8c3d8e0b4a64e01f21d6f900648f.tar.gz
fix logic for `dcEqIgnoreDistinct` in `sameType` (#24197)
fixes #22523

There were 2 problems with the code in `sameType` for
`dcEqIgnoreDistinct`:

1. The code that skipped `{tyDistinct, tyGenericInst}` only ran if the
given types had different kinds. This is fixed by always performing this
skip.
2. The code block below that checks if `tyGenericInst`s have different
values still ran for `dcEqIgnoreDistinct` since it checks if the given
types are generic insts, not the skipped types (and also only the 1st
given type). This is fixed by only invoking this block for `dcEq`;
`dcEqOrDistinctOf` (which is unused) also skips the first given type.
Arguably there is another issue here that `skipGenericAlias` only ever
skips 1 type.

These combined fix the issue (`T` is `GenericInst(V, 1, distinct int)`
and `D[0]` is `GenericInst(D, 0, distinct int)`).

#24037 shouldn't be a dependency but the diff follows it.
Diffstat (limited to 'tests/int')
0 files changed, 0 insertions, 0 deletions