You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Since implicit selection is now inner to outer, shadowing checks
are less important than before.
Shadowing is necessary if we treat implicit search as a synthesis for untyped
terms. I.e. come up with an untyped term and then check whether that term is
typeable and refers to the original implicit. If there's a nested definition
with the same name, that fails.
This viewpoint is very easy to spec but a bit unnatural. In all other instances
of meta programming we deal with typed terms. If we synthesize a typed
term directly, then name resolution is already done and shadowing is immaterial.
Besides, shadowing tests, if they fail, are almost always much more suprising
than enlightening.
0 commit comments