15 Jun 2012 23:36
Re: 2.10.0.M4 build problem
On Fri, Jun 15, 2012 at 2:07 PM, Jason Zaugg <jzaugg-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
AFAICT, you were relying on a bug. I'm not sure exactly when this
changed.
commit 01f6ed8e22d02811fe62b9183d9f84bdda5ede4b
Author: Paul Phillips <paulp-v5eHc9rg9U0h9ZMKESR00Q@public.gmane.org>
Date: 6 weeks ago
Fix for one of the oldest open soundness bugs.
Closes SI-963, since it was one of my random 30 it won the prize.
The trick after adding the stability check (which has been sitting
there commented out for 3+ years) was that implicit search depended
on the wrongness, because memberWildcardType would create scopes
with members of the form
?{ val name: tp }
And since a def shouldn't match that, fixing it broke everything
until I flipped it around: memberWildcardType should be seeking
?{ def name: tp }
It could also search for a mutable value: the relevant quality
is that it not be stable so it doesn't have a tighter type than
the members it hopes to match.
RSS Feed