shine
shine copied to clipboard
Preparation for Scala 3 migration
This PR introduces changes that will help to ease the migration to Scala 3, but the code in this PR remains valid Scala 2 code.
In detail the changes are:
- The type
()
is replaced withUnit
(as Scala 3 seems to no longer accept()
as a type) - The use of generic type projections (i.e.
T#U
) in theFunctionHelper
class is avoided as these have been dropped in Scala 3 - The
._1
and._2
notations on Rise and DPIA expressions do not work in Scala 3 (I don't know why) I have replaced them with`1`
and`2`
- The
`_`
notation is also not accepted by Scala 3, I have replaced it with`__`
- Returning anonymous object types (i.e. `def foo() = new Object { ... } has changed somehow and I have avoided this now altogether by giving the returned type names. This was mainly used in the DSLs.
- I accommodated a change in the signature of the
unapply
method generated for case classes. - I removed some syntax that used Unicode symbols. This is not related to Scala 3 but has repeatedly led to problems to compile on systems where the file system does not support Unicode (as Scala generates a file with the class name for each class).