mirror of
https://github.com/nim-lang/Nim.git
synced 2026-02-12 22:33:49 +00:00
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.
26 lines
593 B
Nim
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]#
|