Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Dyno: fix disambiguation between fully-generic vararg and less generi…
…c non-vararg. (#26456) This fixes an issue discovered in domain module code, in which the following program was considered to be ambiguous: ```Chapel proc foo(x...) {} proc foo(x: integral) {} foo(10); ``` This program is not _actually_ ambiguous, which can be seen by making an appeal to "desugaring" of the vararg version to its non-vararg form: ```Chapel proc foo(x) {} proc foo(x: integral) {} foo(10); ``` The first version of `foo` is fully-generic, while the second is more constrained (it requires an integral type). As a result, the second version is more specific. Dyno didn't detect this because generic vararg formal are given generic tuple types, while the "is fully generic" check was looking for any type. Adjust this by detecting vararg formals and changing the check accordingly. Reviewed @arezaii -- thanks! ## Testing - [x] dyno tests
- Loading branch information