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

Stress test for add-class-deps (#18958) #19015

Closed
wants to merge 9 commits into from

Commits on Nov 18, 2023

  1. Test cases for generic parser combinators

    Some test cases that demonstrate that Scala's type system is currently not precise enough when it comes to
    dependent classes.
    odersky committed Nov 18, 2023
    Configuration menu
    Copy the full SHA
    6f29a76 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    bfebebd View commit details
    Browse the repository at this point in the history

Commits on Nov 19, 2023

  1. Introduce tracked class parameters

    For a tracked class parameter we add a refinement in the constructor type that
    the class member is the same as the parameter. E.g.
    ```scala
    class C { type T }
    class D(tracked val x: C) { type T = x.T }
    ```
    This will generate the constructor type:
    ```scala
    (x1: C): D { val x: x1.type }
    ```
    Without `tracked` the refinement would not be added. This can solve several problems with dependent class
    types where previously we lost track of type dependencies.
    odersky committed Nov 19, 2023
    Configuration menu
    Copy the full SHA
    0f4aba8 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9067e86 View commit details
    Browse the repository at this point in the history
  3. Test case for scala#3920

    odersky committed Nov 19, 2023
    Configuration menu
    Copy the full SHA
    0d4dcd0 View commit details
    Browse the repository at this point in the history

Commits on Nov 21, 2023

  1. Configuration menu
    Copy the full SHA
    2bd0c96 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a4656b1 View commit details
    Browse the repository at this point in the history
  3. Implement pickling/unpickling for dependent refinements

    Needs an addition to Tasty format: TRACKED as a modifier.
    odersky committed Nov 21, 2023
    Configuration menu
    Copy the full SHA
    ac09b4c View commit details
    Browse the repository at this point in the history
  4. Stress test for add-class-deps

    This commit makes all explicitly declared vals tracked. It causes many test failures, which
    makes it unlikely that we will be able to do this in the end. But it's an excellent basis
    for stress testing the implementation of dependent classes.
    
    The idea is to
    
     - look at the test failures in this test
     - convert failing tests into tests witih explicit tracked annotations
     - if the test still fails (it probably will), try to fix the root cause
       or determine that the pattern should not be supported.
    odersky committed Nov 21, 2023
    Configuration menu
    Copy the full SHA
    fab596a View commit details
    Browse the repository at this point in the history