-
Notifications
You must be signed in to change notification settings - Fork 86
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
Compilation broken against current dotty nightlies and likely for upcoming Scala 3.1.3 #365
Comments
22 tasks
smarter
added a commit
to dotty-staging/dotty
that referenced
this issue
Apr 20, 2022
Previously, when reducing `a.T` we checked if the type of `a` was a subtype of `RefinedType(.., T, TypeAlias(...))`, now we extend this check to handle refinements where the `info` is a `TypeBounds` where both bounds are equal. This solves two big issues at once: - We can restore tests/pos/13491.scala to its original form from before scala#13780. The check for abstract types introduced by scala#13780 for soundness reasons is no longer hit because the type selection is reduced before we get to that point. This is important because parboiled2 relies on this and is therefore currently broken on 3.1.3-RC1 and main (sirthias/parboiled2#365). - This fixes scala#14904 (slow compilation issue affecting parboiled2) without caching skolems (as in the alternative fix scala#14909). Again, this is due to the type containing skolem being reducible to a simpler type and therefore cacheable.
I've opened scala/scala3#14987 which would fix the regression (as well as the performance issue) if accepted. |
smarter
added a commit
to dotty-staging/dotty
that referenced
this issue
Apr 20, 2022
Previously, when reducing `a.T` we checked if the type of `a` was a subtype of `RefinedType(.., T, TypeAlias(...))`, now we extend this check to handle refinements where the `info` is a `TypeBounds` where both bounds are equal. This solves two big issues at once: - We can restore tests/pos/13491.scala to its original form from before scala#13780. The check for abstract types introduced by scala#13780 for soundness reasons is no longer hit because the type selection is reduced before we get to that point. This is important because parboiled2 relies on this and is therefore currently broken on 3.1.3-RC1 and main (sirthias/parboiled2#365). - This fixes scala#14903 (slow compilation issue affecting parboiled2) without caching skolems (as in the alternative fix scala#14909). Again, this is due to the type containing skolem being reducible to a simpler type and therefore cacheable.
michelou
pushed a commit
to michelou/scala3
that referenced
this issue
Apr 25, 2022
Previously, when reducing `a.T` we checked if the type of `a` was a subtype of `RefinedType(.., T, TypeAlias(...))`, now we extend this check to handle refinements where the `info` is a `TypeBounds` where both bounds are equal. This solves two big issues at once: - We can restore tests/pos/13491.scala to its original form from before scala#13780. The check for abstract types introduced by scala#13780 for soundness reasons is no longer hit because the type selection is reduced before we get to that point. This is important because parboiled2 relies on this and is therefore currently broken on 3.1.3-RC1 and main (sirthias/parboiled2#365). - This fixes scala#14903 (slow compilation issue affecting parboiled2) without caching skolems (as in the alternative fix scala#14909). Again, this is due to the type containing skolem being reducible to a simpler type and therefore cacheable.
Thanks a lot @smarter 👍 The fix in scala/scala3#14987 works indeed, I checked with the latest 3.2.0-RC1 nightly snapshot. I also added parboiled2 to the Scala 3 community build to be able to catch regressions earlier: scala/scala3#14911. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Starting from 3.1.3-RC1-bin-20220404-ad2553d-NIGHTLY.
See scala/scala3#14903 (comment) for information about would have to be changed to support Scala 3.1.3. Let's wait what will be the eventual result there.
Just changing
~
and~!~
will not be enough, the macros need to be changed to match the new signature and probably the same needs to be done for the generatedActionOps
.The text was updated successfully, but these errors were encountered: