remove fauxMatch for tyFromExpr, remove tyProxy and tyUnknown aliases #24018
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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 mechanismfauxMatch
was used to pretend that any failing match againsttyFromExpr
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 fortyError
to prevent cascading errors and changed to a bool field for simplicity. A change insemtypes
was also needed to prevent callingfitNode
on default param values resolving to typetyFromExpr
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
andtyUnknown
fortyError
andtyFromExpr
are also removed for uniformity.