問題タブ [migration-manager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
scala - package-private クラスの移動 — バイナリに互換性がないと考えるべきですか?
Windowsでのパッケージ名に問題があるためaux
、ライブラリのパッケージ階層内のヘルパー クラスを から移動しています。
に
クラスはライブラリに対してプライベートprivate[scalainterpreter] object Helper
です。
Typesafe Migration-Managerを使用すると、明らかに、変更に互換性がないことが報告されます。
しかし、クライアント コードがどちらのオブジェクトも呼び出さない場合でも、インターフェイスには互換性があるのではないかと思います。そのため、マイナー バージョンの増加を使用して変更を示し、これら 2 つのバージョンを同じ意味で使用できるようにすることができます。
正しい?
scala - 実装にトレイト メソッドを追加すると下位互換性が失われますか?
デフォルト実装のメソッドをトレイトに追加する際の下位互換性について混乱しています。お気に入り:
前のバージョン
新しいバージョン
Migration Managerは、この追加をバイナリ非互換性として報告します。あれは正しいですか?
scala - 元の行を元の位置に戻したにもかかわらず、MiMa は合成メソッドの損失について不平を言っています
Migration Manager からの次のメッセージを理解しようとしています。
クラスNodeGraphImpl
は最終クラスでugenGraphs
、private val
. 私がしたことは、以下を削除することです:
private
ではないことは理解していprivate[this]
ます。したがって、理論的には、削除によって非互換性が生じる可能性があります。Ok。
私はそこにその価値を維持しようとします。エラーはまだ消えません。私の理論は、メソッドが呼び出されないため、コンパイラがメソッドを削除する可能性があるということですか? その値へのダミーアクセスを作成しようとします。
それでもエラーは消えません。MiMa のキャッシングの問題ではないことを確認するために、スナップショットのバージョンも変更しました。では、なぜその合成方法の欠落を主張するのでしょうか?
これが元のコードです。
仮説: MiMa が訴えるメソッドは、getOrElse
from whereへのクロージャ引数ugenGraphs
がアクセスされたために生成されたものです。その場合、新しいバージョンはバイナリ互換であると考えても安全ですか?
scala - Migration-Manager / バイナリ互換性: private[this] を参照して hash-code をオーバーライドする
hashCode
バイナリ互換性のない変更をオーバーライドする理由:
前:
後:
移行マネージャー 言います:
これは実際に問題ですか?または、この変更で同じマイナー バージョンを維持できますか?