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

Add opaque types #4028

Closed
wants to merge 10 commits into from
Closed

Add opaque types #4028

wants to merge 10 commits into from

Commits on Oct 11, 2018

  1. Estabslih companionship directly

    Don't use synthetic companion methods to achieve this. The advantages of the direct
    approach are:
    
     - it's overall simpler
     - it can be more easily extended to opaque types
    odersky committed Oct 11, 2018
    Configuration menu
    Copy the full SHA
    df1c8bb View commit details
    Browse the repository at this point in the history
  2. Avoid follow-on error when trying to resolve overloads

    resolve overload errors should be suppressed if some types are
    already erroenous.
    odersky committed Oct 11, 2018
    Configuration menu
    Copy the full SHA
    2450b0a View commit details
    Browse the repository at this point in the history
  3. Print types and term flags separately

    Distinguish what is printed by previous knowledge whether the
    symbol is a term or a type.
    odersky committed Oct 11, 2018
    Configuration menu
    Copy the full SHA
    8c7e8e2 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    faefd16 View commit details
    Browse the repository at this point in the history
  5. Normalize opaque types

    Treat as abstract types until FirstTransform, as aliases afterwards
    odersky committed Oct 11, 2018
    Configuration menu
    Copy the full SHA
    e3689bd View commit details
    Browse the repository at this point in the history

Commits on Oct 15, 2018

  1. Establish opaque companions

    Open opaque types as gadts in opaque companion modules.
    odersky committed Oct 15, 2018
    Configuration menu
    Copy the full SHA
    53d1fca View commit details
    Browse the repository at this point in the history
  2. Fix typo

    odersky committed Oct 15, 2018
    Configuration menu
    Copy the full SHA
    c6c5bd1 View commit details
    Browse the repository at this point in the history
  3. Docs and tests

    odersky committed Oct 15, 2018
    Configuration menu
    Copy the full SHA
    716b3a0 View commit details
    Browse the repository at this point in the history
  4. Adapt tests to restricted meaning of GADTs

    In the new implementation, a companion object of an opaque type
    
      opaque type T = A
    
    only knows that T <: A and that A <: T. By itself that does not
    propagate some informations from `A` to `T`. For instance the members
    of A are now not the members of T.
    odersky committed Oct 15, 2018
    Configuration menu
    Copy the full SHA
    207c380 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    a6edd60 View commit details
    Browse the repository at this point in the history