summary refs log tree commit diff stats
path: root/lib/pure/parseopt.nim
diff options
context:
space:
mode:
authormetagn <metagngn@gmail.com>2024-08-28 21:46:36 +0300
committerGitHub <noreply@github.com>2024-08-28 20:46:36 +0200
commitd3af51e3ce968076bb3331087806312c0faba054 (patch)
tree9a3321b4f3691c851ef68d1d82ed364c3d7ec78b /lib/pure/parseopt.nim
parentea7c2a440976b2757a780680a08f29c3ce0914e0 (diff)
downloadNim-d3af51e3ce968076bb3331087806312c0faba054.tar.gz
remove fauxMatch for tyFromExpr, remove tyProxy and tyUnknown aliases (#24018)
updated version of #22193

After #22029 and the followups #23983 and #24005 which fixed issues with
it, `tyFromExpr` no longer match any proc params in generic type bodies
but delay all non-matching calls until the type is instantiated.
Previously the mechanism `fauxMatch` was used to pretend that any
failing match against `tyFromExpr` actually matched, but prevented the
instantiation of the type until later.

Since this mechanism is not needed anymore for `tyFromExpr`, it is now
only used for `tyError` to prevent cascading errors and changed to a
bool field for simplicity. A change in `semtypes` was also needed to
prevent calling `fitNode` on default param values resolving to type
`tyFromExpr` in generic procs for params with non-generic types, as this
would try to coerce the expression into a concrete type when it can't be
instantiated yet.

The aliases `tyProxy` and `tyUnknown` for `tyError` and `tyFromExpr` are
also removed for uniformity.
Diffstat (limited to 'lib/pure/parseopt.nim')
0 files changed, 0 insertions, 0 deletions