[Scala 2.12.8]パターンマッチに@を使ってバインドしたらwarningがでた
こんなコードを書いたら
こんなwarningが出た。
Warning:(36, 14) The value matched by this.FooB is bound to b, which may be used under the unsound assumption that it has type FooB.type, whereas we can only safely count on it having type Foo, as the pattern is matched using `==` (see scala/bug#1503). case b @ FooB => println(b)
どうやらこう書くのが正しいらしい。
f match { case FooA => println("A") case b: FooB.type => println(b) }
詳しくはこちら。
https://github.com/scala/bug/issues/10960
読み込んでないので、詳細は割愛。
ディスカッション
コメント一覧
まだ、コメントがありません