Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Prune polymorphic implicits more aggressively #6580

Merged
merged 2 commits into from Aug 10, 2018

Commits on Aug 8, 2018

  1. Prune polymorphic implicits more aggressively

    In rankImplicits, before we attempt to fully typecheck the pending
    candidate implicit, we first attempt to partially instantiate type
    variables in both the candidate and the target type and check for
    compatibility. If the compatibility check fails we can immediately prune
    the the candidate without having to fully typecheck it.
    
    In the kinds of implicit searches typical of the inductive style found
    in shapeless and related libraries this can result in a drastic
    reduction in the search space and a corresponding reduction in compile
    times.
    
    As an added bonus users of shapeless and shapeless based libraries which
    use shapeless's Lazy type will see benefits immediately without needing
    to wait for and port to byname implicit arguments.
    milessabin committed Aug 8, 2018
    Configuration menu
    Copy the full SHA
    417a22d View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ce3b37c View commit details
    Browse the repository at this point in the history