Scala 3で独自にunion typeのleast upper boundを計算する仕組みを作った

Scala 3では、以下のように | というunion type?or type?という新しい仕様が追加されました。

(仕様というか、少なくとも以下の公式ドキュメントではunionと呼んでるが、Scala 3のquoteのAPI内部ではOrTypeでややこしい)

https://docs.scala-lang.org/scala3/book/types-union.html

Welcome to Scala 3.3.0-RC3 (11.0.18, Java OpenJDK 64-Bit Server VM).
Type in expressions for evaluation. Or try :help.
                                                                                                                        
scala> List(2, "a")
val res0: List[Int | String] = List(2, a)

しかし、これをScala 2でおこなったら、当然以下のように Any などになります

続きを読む

sbtかつGitHub Actionsでログの表示をいい感じにするplugin

他人が作ったものを紹介するだけの記事。

以下のtweetで大体は言い尽くしてあるのですが、これはとても良さがあるので、あえて、ほぼtweet貼り付けるだけの記事書いておくことにしました。

github.com

warn

続きを読む

scalafmtやscalafix適用結果をGitHubのpull reqで自動でsuggestする

一言でいうとreviewdogの紹介をするだけなのですが、すごくタイミングよく罠にハマった?ので、それの暫定的な回避も書いておきます。

続きを読む

sbtのprojectでpull requestで変更された依存ライブラリの一覧を出す

少し前に、以下のようなものを作りましたが

xuwei-k.hatenablog.com

github.com

それと似たような発想で

「このpull reqで変わったライブラリは何か?」

のdiffを出す仕組みを作りました、という話。

ここでのポイントは

「間接的に依存してるjarも含むdiff」

も出す、というもの。

既に似たようなものは存在していても全然不思議ではない気がするけど、調べるより作った方が速いので作りました。

続きを読む