Stumped on this one. Working with PlayJSON and their JsObject.
Wart remover is marking the map call with a carrot(^) and saying at that line Inferred type containing Serializable. Code is functional and working but wondering more about why tool is flagging this and how to remove this error.
def getPrintVersionOfJsonObj(jsObj: JsObject): JsObject = {
val fieldValueMap: Seq[(String,JsValue)] = jsObj.fields.map {
case (fieldName, fieldValue: JsNumber) => (fieldName, fieldValue)
case (fieldName, fieldValue: JsBoolean) => (fieldName, fieldValue)
case (fieldName, fieldValue: JsString) => (fieldName, fieldValue)
case (fieldName, fieldValue: JsArray) => (fieldName, convertJsArrayToPrettyString(fieldValue))
case (fieldName, fieldValue: JsObject) => (fieldName, getPrintVersionOfJsonObj(fieldValue))
case (fieldName, fieldValue: JsValue) => (fieldName, JsString(Json.prettyPrint(fieldValue)))
}
JsObject(fieldValueMap)
}
JSObject.fields is scala.collection.Seq[scala.Tuple2[scala.Predef.String, play.api.libs.json.JsValue]]
What I find confusing is you have known return type for that val fieldValueMap and you know the type of jsObj.fields