Fleet のコードベースで明示的なシリアライズ/デシリアライズ戦略パラメーターがない Kotlin のシリアル化メソッドが不適切に使用されていることを検出します。

このインスペクションは JSON シリアライズメソッドへの呼び出しのうち、適切にパラメーター化されていない場合に実行時に望ましくないリフレクションが発生する可能性のあるものを特定します。

このインスペクションは、具体的には kotlinx.serialization.json.Json パッケージから次のメソッドへの呼び出しを確認します:


decodeFromString
decodeFromJsonElement
encodeToString
encodeToJsonElement

これらのメソッドは明示的なシリアライズ/デシリアライズ戦略パラメーターを常に指定して呼び出し、Fleet の マルチプラットフォーム環境で問題を引き起こす可能性があるリフレクションに依存しないようにする必要があります。

問題のあるコードの例:


Json.encodeToString(myObject) // SerializationStrategy がありません

正しい使用方法:


Json.encodeToString(MyType.serializer(), myObject)