Techいつもコードのことばかり考えている人のために。2.13でコンパイルすると以下のようなメッセージを見かけるようになりました。Array[Int])Seq[Int]copyArrayToImmutableIndexedSeqなんてメソッド、呼び出していたっけ?LowPriorityImplicits2っていうクラスって何だっけ?そもそも、このメッセージは何を意味しているのか?...調べた結果をまとめました。2.13へのマイグレーションガイドをチェックします。20ページに関連する記載が有ります。2.12までは、ArrayをSeqへ渡すと、scala.collection.mutable.WrappedArrayに変換されていました。Conversionの挙動です。2.13ではSeqがImmutable化されたことを受けて、scala.collection.immutable.ArraySeqに変換されます。2.13のscala.Predefで定義が追加された以下のコードによるものです。ArrayOps(xs).toIndexedSeq}LowPriorityImplicits2もcopyArrayToImmutableIndexedSeqが出てきました。暗黙の変換によりコピーが発生するので、toIndexedSeqでコピーして変換するか、それではパフォーマンス的に問題になる場合はArraySeq.unsafeWrapArrayを使ってコピー無しにimmutable化するか明示的に示しましょう、ということですね「ArraySeq.unsafeWrapArray」って何がunsafeなの?という話は、また別のエントリを書きます)。確かに、警告が出なくなります。conversionですしね)。定義された瞬間に非推奨になってしまうクラスと、メソッド...しかもユーザーコード上には出てきません...「実は、最初からそんなメソッドなんか無かったんですよ...」って言うと何だか押井守っぽいですね。いうわけで上記のメッセージが出たら、明示的に変換方法を指定しましょう、という話でした。Type-Sを買った月別アーカイブはてなブログをはじめよう!magnoliakさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。