lihaoyi / autowire

Macros for simple/safe RPCs between Scala applications, including ScalaJS/ScalaJVM
378 stars 50 forks source link

Bugs with Upickle 0.3.8 #47

Closed mathieuleclaire closed 4 years ago

mathieuleclaire commented 8 years ago

Hi, I tested it with upickle 0.3.8 but it seems that it does not work yet, doesn'it ? I have strange errors for one call in particular (but it works with a lot of others calls) :

/home/mathieu/work/cogit/openmole/openmole/gui/client/org.openmole.gui.client.core/src/main/scala/org/openmole/gui/client/core/ExecutionPanel.scala:70: type mismatch;
[error]  found   : upickle.default.Reader[(org.openmole.gui.ext.data.RunningData, org.openmole.gui.ext.data.RunningData)]
[error]  required: upickle.default.Aliases.R[(Seq[org.openmole.gui.ext.data.RunningEnvironmentData], Seq[org.openmole.gui.ext.data.RunningOutputData])]
[error]     (which expands to)  upickle.default.Reader[(Seq[org.openmole.gui.ext.data.RunningEnvironmentData], Seq[org.openmole.gui.ext.data.RunningOutputData])]
[error]             errorLevelSelector.content().map{_.level}.getOrElse(ErrorLevel())).call().andThen {
[error]

where RunningData is defined as:

case class RunningData(environmentsData: Seq[RunningEnvironmentData], outputsData: Seq[RunningOutputData])```
lihaoyi commented 8 years ago

No idea, can you minimize?

mathieuleclaire commented 8 years ago

I still have the problem back to the 0.2.8 but in different terms:

exception during macro expansion: 
[error] java.lang.AssertionError: assertion failed
[error]     at scala.Predef$.assert(Predef.scala:151)
[error]     at upickle.Macros$.macroRImpl(Macros.scala:32)
[error]     at sun.reflect.GeneratedMethodAccessor19.invoke(Unknown Source)
[error]     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[error]     at java.lang.reflect.Method.invoke(Method.java:497)
[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:756)
[error]             errorLevelSelector.content().map{_.level}.getOrElse(ErrorLevel())).call().andThen {
[error]                                                                                    ^

I didn't mention it but all these tests have done with scala-js 0.6.7. Has autowire been tested with it ?

mathieuleclaire commented 8 years ago

I prepared a minimized test easy to reproduce: just clone this: https://github.com/mathieuleclaire/scalaWUI/tree/test. Then run sbt > go. The compilation fails with:

[error] /home/mathieu/work/cogit/scalaWUI/client/src/main/scala/fr/iscpif/client/Client.scala:41: type mismatch;
[error]  found   : upickle.default.Reader[(fr.iscpif.ext.Data.RunningData, fr.iscpif.ext.Data.RunningData)]
[error]  required: upickle.default.Aliases.R[(Seq[fr.iscpif.ext.Data.RunningEnvironmentData], Seq[fr.iscpif.ext.Data.RunningOutputData])]
[error]     (which expands to)  upickle.default.Reader[(Seq[fr.iscpif.ext.Data.RunningEnvironmentData], Seq[fr.iscpif.ext.Data.RunningOutputData])]
[error]     Post[shared.Api].runningData(4).call().foreach {b=>
[error]                                         ^
[error] one error found
mathieuleclaire commented 8 years ago

Did you succeed in reproducing this bug ?