私はエラーを取得せずに(再帰的に)このようKotlin REPLで値を定義することができます。これはKotlin REPLのバグですか?
val s: String = s
をそして今、私はNOTNULLの種類が、ヌルの値に「s」を取得します。
そして私はNPEと、このNotNull
値で何かを行うことができます:
>>> val s: String = s
>>> s.length
java.lang.NullPointerException
あなたはそれをするたびに動作しますが、ご自身Kotlin REPLでそれを試すことができます。
私はKotlinバージョン1.1.2-3を使用しています。
REPLは、実行されている行の最後の状態を表すクラスのメンバーにローカル変数を回転させることによって機能します。したがって、変数 's'は' null'値を持つメンバとして作成され、その後独自の値(まだ 'null')に設定されます。そのためコードがコンパイルされます。コンテキスト内でコードを真にチェックするのではなく、前の行と現在の行に設定されている現在の値とのコードをチェックします。したがって、失敗するケースもあります。しかし、バグはバグです。それを探してください。そうでなければ、バグを報告してください:http://youtrack.jetbrains.com/issues/KT –
そしてこのバグをここに書き留めて、他の読者がその状態を追跡できるようにしてください。ありがとう! –
未解決の問題は見つかりませんでしたので、https://youtrack.jetbrains.com/issue/KT-18052 – zsmb13