Add Scala 3 support#202
Conversation
489d06d to
a56fd99
Compare
5875bb7 to
153bdaf
Compare
a3fb8ae to
65dd342
Compare
jvican
left a comment
There was a problem hiding this comment.
LGTM overall 👍 I wish we could reuse more code in the Scala 3 version but it might be more troubling than just copy pasting the bulk of the implementation. Feel free to merge when the CI is green.
|
Are you going to finish this one @plokhotnyuk ? |
|
FYI @plokhotnyuk I made 0.6.0 release with the latest changes in master |
|
@plokhotnyuk ping |
0469ebd to
cacd4c7
Compare
|
Tests for Scala 3 are failing on dynamic call still... https://github.com/jvican/dijon/runs/5154360494?check_suite_focus=true |
|
Will take a look |
|
Would be really cool to see this library work on Scala 3 @plokhotnyuk :-) |
1e60e95 to
22b8db3
Compare
|
Hey @jvican and @plokhotnyuk . Has the situation changed over time enough that there are no barriers for Dijon to work with Scala 3 LTS? |
|
@ScalaWilliam @baldram @jvican I have no idea how Scala 3 support could be done in a source compatible way with Scala 2 yet. More over, proposed here workaround with a pattern match on types to overcome missing support of recursive union types is not compilable with Scala 3.4.x anymore scala/scala3#18257 But the main problem is that dynamic call cannot be supported with implicit class conversions. /cc @lbialy |
I'm wondering if a cross-build is really necessary here? Isn't it a waste of effort? Perhaps it's better to just park this repo, in its current state, under the tag "Dijon for Scala2 / Deprecated" and continue development for Scala 3 only? After all, when new libraries are created today, no one looks back at history. |
|
Can you point me towards a piece of code that poses a problem here? |
Hey @plokhotnyuk in this comment #202 (comment) you've mentioned the compatibility issue. And Łukasz has asked as quoted above. And here the discussion stopped. Does this mean the library is reaching its end of life if we can’t solve this? Maybe there is still a hope, as I guess Łukasz could talk to Compiler Team if we clarify the issue in more details. (PS: I would still opt for dropping Scala 2 support here). |
While you can use Scala 2 artifacts of dijon with Scala 3 (see
CrossVersion.for3Use2_13), it could be great to have Scala 3 version that uses union types or new enums for AST representation.