Files
Nim/tests/enum/tpure_enums_conflict.nim
metagn f223f016f3 show symchoices as ambiguous in overload type mismatches (#24077)
fixes #23397

All ambiguous symbols generate symchoices for call arguments since
#23123. So, if a type mismatch receives a symchoice node for an
argument, we now treat it as an ambiguous identifier and list the
ambiguous symbols in the error message.
2024-09-09 09:50:45 +02:00

28 lines
570 B
Nim

discard """
matrix: "-d:testsConciseTypeMismatch"
"""
# bug #8066
when true:
type
MyEnum {.pure.} = enum
valueA, valueB, valueC, valueD, amb
OtherEnum {.pure.} = enum
valueX, valueY, valueZ, amb
echo valueA # MyEnum.valueA
echo MyEnum.amb # OK.
echo amb #[tt.Error
^ type mismatch
Expression: echo amb
[1] amb: MyEnum | OtherEnum
Expected one of (first mismatch at [position]):
[1] proc echo(x: varargs[typed, `$$`])
ambiguous identifier: 'amb' -- use one of the following:
MyEnum.amb: MyEnum
OtherEnum.amb: OtherEnum]#