-
Notifications
You must be signed in to change notification settings - Fork 36
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[1.18] Material
に対する match を error にする Scalafix rule を書く
#2226
Comments
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
んなことある????? |
メモ: 帰ったらプロファイル結果を貼る |
(昨日軽くデバッガーで scalac の様子を覗いてたんですが、match optimization で unreachable arm の存在を調べるために明大論理ソルバを持ち出しているっぽくて、そこで無限に時間が掛かっていました 普通に想定していない大きさの |
↑OnClickTitleMenuとBreakUtil.isAffectedByGravityはまぁ仕方ないだろうという気持ちになるが、それ以外は自明なパターンなので意味不明 |
最小化するため、試しに enum Hello {
E1,
/* ... */
E2000
} object App {
def main(args: Array[String]): Unit = {
val x: Hello = Hello.E1
x match {
case Hello.E4 => println("E4")
case _ => println("other")
}
}
} という例を持ち出したら普通に4分程度かかった。 |
もしかして: 命題論理ソルバ? |
tracked: scala/bug#12873 |
closed by #2227 |
|
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
これでコンパイル時間が大幅に短縮される (2000秒 -> 110秒)。詳細は #2226 を参照のこと。
#2115 にて露呈した問題で、1.13 以降の Spigot API では
org.bukkit.Material
の case 数が 1800 個を超えており、t: Material
についてt match { ... }
と書くだけでコンパイル時間が 200 秒ほど増える現象が発生していた。このため、
org.bukkit.Material
が scrutinee に来るmatch
式は Scalafix rule にてエラーとしたい (少数のそのようなmatch
が紛れ込んだ場合、数分程度コンパイル時間が伸び、気づかないことがありそうなので)。The text was updated successfully, but these errors were encountered: