Paul Phillips | 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
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.


Gmane