amnaredo / test

0 stars 0 forks source link

exception during macro expansion #127

Open amnaredo opened 3 years ago

amnaredo commented 3 years ago
case class GeoJsonPoint(tpe : String = "Feature" , geometry : Geometry ,properties : GeoProperties )
case class Geometry(tpe : String = "Point",coordinates : Coordinates)
case class Coordinates(lng : Double,lat : Double)
object Coordinates {
  implicit val coordinatesWriter = upickle.Writer[Coordinates] {
    case t => Js.Arr(Js.Num(t.lng),Js.Num(t.lat))
  }
  implicit val coordinatesReader = upickle.Reader[Coordinates] {
    case t =>  {
       val arr = t.asInstanceOf[Js.Arr]
      Coordinates(arr.apply(0).value.asInstanceOf[Double],arr.apply(1).value.asInstanceOf[Double])
    }
  }
}
case class GeoProperties(contact: Contact)

case class Address(city: String, district: String, state: String, zip: String, street: String, country: String)

case class Contact(name: String, phoneNumbers: js.Array[String], address: Address)

println(s"output ******* ${write(GeoJsonPoint(geometry = null,properties = null))}")

error :


[error] java.lang.AssertionError: assertion failed
[error]         at scala.Predef$.assert(Predef.scala:151)
[error]         at upickle.Macros$.macroWImpl(Macros.scala:49)
[error]         at sun.reflect.GeneratedMethodAccessor26.invoke(Unknown Source)
[error]         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error]         at java.lang.reflect.Method.invoke(Method.java:483)
[error]         at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:34)
[error]         at scala.reflect.macros.runtime.JavaReflectionRuntimes$JavaReflectionResolvers$$anonfun$resolveJavaReflectionRuntime$2.apply(JavaReflectionRuntimes.scala:22)
[error]         at scala.tools.nsc.typechecker.Macros$class.macroExpandWithRuntime(Macros.scala:755)
[error]       println(s"output ******* ${write(GeoJsonPoint(geometry = null,properties = null))}")

ID: 88 Original Author: chandu0101

amnaredo commented 3 years ago

i have js.Arry for phonenumbers case class Contact(name: String, phoneNumbers: js.Array[String], address: Address)

changing to Vector solved issue :)

Original Author: chandu0101