Lambdaカクテル

京都在住Webエンジニアの日記です

Invite link for Scalaわいわいランド

Scalaで特定の警告をエラーにするには -Wconf:msg=FOOBAR:error と書けばよいので non-exhaustive match だけエラーにできる

Scalaコンパイラは、特定の警告メッセージに対してad-hocに警告からエラーに昇格させ、コンパイルを失敗させることができる。

以下のscalac optionを設定することで non-exhaustive match だけエラーにできる:

-Wconf:msg=match may not be exhaustive:error

sbtだと以下のような設定になる:

scalacOptions += "-Wconf:msg=match may not be exhaustive:error"

あらすじ

先日Scalaの英語版Discordを見ていたら、以下のような質問があった(意訳)

matchが不完全な場合にエラーにする方法ないの?-Werrorしたら全ての警告をエラーにできるけど、さすがに範囲がでかすぎて使いものにならないよ。

Scalaユーザにとってmatchが不完全な状態は大抵の場合エラーにしたいはず。しかしこれだけエラーにする方法はなさそうでその時は自分も「たぶんそういうオプションはなさそう」と答えるほかなかった。

しかし後日Discordを見たところ解決していた。

discord.com

また同様のことをScalaわいわいランドで訊いたところ同様の答えであった*1

discord.com

教えてくださった方々ありがとうございました。

*1:質問した時点では英語版のDiscordで解決済みであることを知らなかった

★記事をRTしてもらえると喜びます
Webアプリケーション開発関連の記事を投稿しています.読者になってみませんか?