個人というか、プライベートなチーム開発をしていて、折角だからできるだけ新しめのバージョンで実装してみようと思い、Scala2.13.3で実装していて、いつも通りSlickを書いていたら一瞬ハマった話。
環境
- Scala 2.13.3
- play-slick 5.0.0
エラー
[info] Compiling 24 Scala sources and 1 Java source to /Users/chibatoshinori/Projects/NewApp/NewAppApi/target/scala-2.13/classes ...
[error] /Users/chibatoshinori/Projects/NewApp/NewApp/app/gateways/abilities/AbilityDetailEntity.scala:33:110: multiarg infix syntax looks like a tuple and will be deprecated
[error] override def * : ProvenShape[AbilityDetailEntity] = (ability, langCode, abilityName, abilityDescription) <> (AbilityDetailEntity.tupled, AbilityDetailEntity.unapply)
[error] ^
multiarg infix syntax looks like a tuple and will be deprecated
タプルのような複数引数をとる中置記法が非推奨になった模様。
下記のPRが関連というか原因というか。
PRを見る限りだと、2.13.3からみたい。同じ2.13系でも2.13.2までなら問題なく動くのかも。(確認はしていない)
対応
中置記法がだめとのことなので、.
でつなげる書き方に切り替えて対応。
override def * : ProvenShape[JobMasterEntity] = (key, calcMethodId, creditMin, creditMax).<>(JobMasterEntity.tupled, JobMasterEntity.unapply)