Files
Nim/tests/enum/tpure_enums_conflict_legacy.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

26 lines
593 B
Nim

# 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: got <MyEnum | OtherEnum>
but expected one of:
proc echo(x: varargs[typed, `$$`])
first type mismatch at position: 1
required type for x: varargs[typed]
but expression 'amb' is of type: None
ambiguous identifier: 'amb' -- use one of the following:
MyEnum.amb: MyEnum
OtherEnum.amb: OtherEnum
expression: echo amb]#