Last active
March 16, 2022 15:08
-
-
Save sergey-scherbina/8208552 to your computer and use it in GitHub Desktop.
While I was doing exercises from book "Functional programming in Scala", it seems as I caught a bug in Scala's compiler. It is thrown in both 2.10.3 and 2.10.4-RC1.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
scalaVersion := "2.10.4-RC1" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
object Monads { | |
trait Functor[F[_]] { | |
def map[A, B](fa: F[A])(f: A => B): F[B] | |
} | |
trait Monad[M[_]] extends Functor[M] { | |
self => | |
def unit[A](a: => A): M[A] | |
def flatMap[A, B](ma: M[A])(f: A => M[B]): M[B] = | |
compose[Unit, A, B](_ => ma, f)() | |
def map[A, B](ma: M[A])(f: A => B): M[B] = | |
flatMap(ma)(a => unit(f(a))) | |
def map2[A, B, C](ma: M[A], mb: M[B])(f: (A, B) => C): M[C] = | |
flatMap(ma)(a => map(mb)(b => f(a, b))) | |
def sequence[A](lma: List[M[A]]): M[List[A]] = | |
traverse(lma)(flatMap(_)(unit(_))) | |
def traverse[A, B](la: List[A])(f: A => M[B]): M[List[B]] = | |
map(la.foldLeft(unit(List[B]()))((m, a) => | |
flatMap(m)(x => map(f(a))(_ :: x))))(_.reverse) | |
def replicateM[A](n: Int, ma: M[A]): M[List[A]] = | |
map(ma)(List.fill(n)(_)) | |
def factor[A, B](ma: M[A], mb: M[B]): M[(A, B)] = | |
map2(ma, mb)((_, _)) | |
def cofactor[A, B](e: Either[M[A], M[B]]): M[Either[A, B]] = | |
e match { | |
case Left(ma) => map(ma)(Left(_)) | |
case Right(mb) => map(mb)(Right(_)) | |
} | |
def compose[A, B, C](f: A => M[B], g: B => M[C]): A => M[C] = | |
a => flatMap(f(a))(g) | |
} | |
val optMonad = new Monad[Option] { | |
def unit[A](a: => A): Option[A] = Option(a) | |
override def flatMap[A, B](ma: Option[A])(f: A => Option[B]) = | |
ma match { | |
case None => None | |
case Some(a) => f(a) | |
} | |
} | |
val listMonad = new Monad[List] { | |
def unit[A](a: => A): List[A] = List(a) | |
override def flatMap[A, B](ma: List[A])(f: A => List[B]): List[B] = | |
ma.flatMap(f) | |
} | |
case class Id[A](value: A) | |
val idMonad = new Monad[Id] { | |
def unit[A](a: => A): Id[A] = Id(a) | |
override def flatMap[A, B](ma: Id[A])(f: A => Id[B]): Id[B] = f(ma.value) | |
} | |
case class Reader[R, A](run: R => A) | |
object Reader extends { | |
def readerMonad[R] = new Monad[({type f[x] = Reader[R, x]})#f] { | |
def unit[A](a: => A): Reader[R, A] = Reader(_ => a) | |
override def flatMap[A, B](st: Reader[R, A])(f: A => Reader[R, B]): Reader[R, B] = | |
Reader(r => f(st.run(r)).run(r)) | |
} | |
} | |
def eitherMonad[E] = new Monad[({type f[x] = Either[E, x]})#f] { | |
def unit[A](a: => A) = Right(a) | |
override def flatMap[A, B](ma: Either[E, A])(f: (A) => Either[E, B]): Either[E, B] = | |
ma match { | |
case Right(a) => f(a) | |
case Left(left) => Left(left) | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
compiler.bug $ sbt clean compile | |
[info] Loading global plugins from /Users/sergey/.sbt/0.13/plugins | |
[info] Set current project to compiler-bug (in build file:/Users/sergey/work/projects/scala/compiler.bug/) | |
[success] Total time: 0 s, completed 01.01.2014 17:02:27 | |
[info] Updating {file:/Users/sergey/work/projects/scala/compiler.bug/}compiler-bug... | |
[info] Resolving org.fusesource.jansi#jansi;1.4 ... | |
[info] Done updating. | |
[info] Compiling 1 Scala source to /Users/sergey/work/projects/scala/compiler.bug/target/scala-2.10/classes... | |
while compiling: /Users/sergey/work/projects/scala/compiler.bug/Monads.scala | |
during phase: global=lambdalift, atPhase=constructors | |
library version: version 2.10.4-RC1 | |
compiler version: version 2.10.4-RC1 | |
reconstructed args: -classpath /Users/sergey/work/projects/scala/compiler.bug/target/scala-2.10/classes -bootclasspath /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/resources.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/rt.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/sunrsasign.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/jsse.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/jce.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/charsets.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/jfr.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/lib/JObjC.jar:/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home/jre/classes:/Users/sergey/.ivy2/cache/org.scala-lang/scala-library/jars/scala-library-2.10.4-RC1.jar | |
last tree to typer: term idMonad | |
symbol: value idMonad in object Monads (flags: <triedcooking> private[this]) | |
symbol definition: private[this] val idMonad: Monads.Monad | |
tpe: <notype> | |
symbol owners: value idMonad -> object Monads -> package <empty> | |
context owners: value x$1 -> method apply -> anonymous class $anonfun$1 -> value qual$1 -> method flatMap -> trait Monad -> object Monads -> package <empty> | |
== Enclosing template or block == | |
DefDef( // final def apply(x$1: runtime.BoxedUnit): Object | |
<method> final <triedcooking> | |
"apply" | |
[] | |
// 1 parameter list | |
ValDef( // x$1: runtime.BoxedUnit | |
<param> | |
"x$1" | |
<tpt> // tree.tpe=runtime.BoxedUnit | |
<empty> | |
) | |
<tpt> // tree.tpe=Object | |
"ma" // ma: Object, tree.tpe=Object | |
) | |
== Expanded type of tree == | |
<notype> | |
unhandled exception while transforming Monads.scala | |
[error] uncaught exception during compilation: java.lang.IllegalArgumentException | |
java.lang.IllegalArgumentException: Could not find proxy for ma: Object in List(value ma, method flatMap, class Monad$class, object Monads, package <empty>, package <root>) (currentOwner= method apply ) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$searchIn$1(LambdaLift.scala:303) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$searchIn$1(LambdaLift.scala:308) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$searchIn$1(LambdaLift.scala:308) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$searchIn$1(LambdaLift.scala:308) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$searchIn$1(LambdaLift.scala:308) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$searchIn$1(LambdaLift.scala:308) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$searchIn$1(LambdaLift.scala:308) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$searchIn$1(LambdaLift.scala:308) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$searchIn$1(LambdaLift.scala:308) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.proxy(LambdaLift.scala:317) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$proxyRef(LambdaLift.scala:350) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.postTransform(LambdaLift.scala:517) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1235) | |
at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1233) | |
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:19) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1232) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2927) | |
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2925) | |
at scala.collection.immutable.List.loop$1(List.scala:170) | |
at scala.collection.immutable.List.mapConserve(List.scala:186) | |
at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2925) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:566) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:42) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1276) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:44) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:44) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:44) | |
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:44) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2904) | |
at scala.reflect.internal.Trees$$anonfun$itransform$4.apply(Trees.scala:1280) | |
at scala.reflect.internal.Trees$$anonfun$itransform$4.apply(Trees.scala:1279) | |
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:19) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1278) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2927) | |
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2925) | |
at scala.collection.immutable.List.loop$1(List.scala:170) | |
at scala.collection.immutable.List.mapConserve(List.scala:186) | |
at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2925) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:566) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:42) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1238) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.api.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:2900) | |
at scala.reflect.api.Trees$Transformer$$anonfun$transformTrees$1.apply(Trees.scala:2900) | |
at scala.collection.immutable.List.loop$1(List.scala:170) | |
at scala.collection.immutable.List.mapConserve(List.scala:186) | |
at scala.reflect.api.Trees$Transformer.transformTrees(Trees.scala:2900) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1219) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1217) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1219) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1235) | |
at scala.reflect.internal.Trees$$anonfun$itransform$2.apply(Trees.scala:1233) | |
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:19) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1232) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2927) | |
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2925) | |
at scala.collection.immutable.List.loop$1(List.scala:170) | |
at scala.collection.immutable.List.mapConserve(List.scala:186) | |
at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2925) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:566) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:42) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1276) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:44) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:44) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:44) | |
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:44) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2904) | |
at scala.reflect.internal.Trees$$anonfun$itransform$4.apply(Trees.scala:1280) | |
at scala.reflect.internal.Trees$$anonfun$itransform$4.apply(Trees.scala:1279) | |
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:19) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1278) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2927) | |
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2925) | |
at scala.collection.immutable.List.loop$1(List.scala:170) | |
at scala.collection.immutable.List.mapConserve(List.scala:186) | |
at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2925) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:566) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:42) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1276) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:44) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:44) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$1.apply(TypingTransformers.scala:44) | |
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:44) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.api.Trees$Transformer.transformTemplate(Trees.scala:2904) | |
at scala.reflect.internal.Trees$$anonfun$itransform$4.apply(Trees.scala:1280) | |
at scala.reflect.internal.Trees$$anonfun$itransform$4.apply(Trees.scala:1279) | |
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:19) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1278) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:48) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2927) | |
at scala.reflect.api.Trees$Transformer$$anonfun$transformStats$1.apply(Trees.scala:2925) | |
at scala.collection.immutable.List.loop$1(List.scala:170) | |
at scala.collection.immutable.List.mapConserve(List.scala:186) | |
at scala.reflect.api.Trees$Transformer.transformStats(Trees.scala:2925) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:566) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformStats(LambdaLift.scala:42) | |
at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1298) | |
at scala.reflect.internal.Trees$$anonfun$itransform$7.apply(Trees.scala:1298) | |
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:28) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:19) | |
at scala.reflect.internal.Trees$class.itransform(Trees.scala:1297) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.internal.SymbolTable.itransform(SymbolTable.scala:13) | |
at scala.reflect.api.Trees$Transformer.transform(Trees.scala:2897) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.scala$tools$nsc$transform$TypingTransformers$TypingTransformer$$super$transform(TypingTransformers.scala:44) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:46) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer$$anonfun$transform$2.apply(TypingTransformers.scala:46) | |
at scala.reflect.api.Trees$Transformer.atOwner(Trees.scala:2936) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.atOwner(TypingTransformers.scala:34) | |
at scala.tools.nsc.transform.TypingTransformers$TypingTransformer.transform(TypingTransformers.scala:46) | |
at scala.tools.nsc.transform.ExplicitOuter$OuterPathTransformer.transform(ExplicitOuter.scala:324) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.preTransform(LambdaLift.scala:539) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:547) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transform(LambdaLift.scala:42) | |
at scala.tools.nsc.ast.Trees$Transformer.transformUnit(Trees.scala:227) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.scala$tools$nsc$transform$LambdaLift$LambdaLifter$$super$transformUnit(LambdaLift.scala:572) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter$$anonfun$transformUnit$1.apply(LambdaLift.scala:572) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter$$anonfun$transformUnit$1.apply(LambdaLift.scala:572) | |
at scala.reflect.internal.SymbolTable.atPhase(SymbolTable.scala:207) | |
at scala.reflect.internal.SymbolTable.afterPhase(SymbolTable.scala:216) | |
at scala.tools.nsc.transform.LambdaLift$LambdaLifter.transformUnit(LambdaLift.scala:571) | |
at scala.tools.nsc.transform.Transform$Phase.apply(Transform.scala:30) | |
at scala.tools.nsc.Global$GlobalPhase.applyPhase(Global.scala:464) | |
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:431) | |
at scala.tools.nsc.Global$GlobalPhase$$anonfun$run$1.apply(Global.scala:431) | |
at scala.collection.Iterator$class.foreach(Iterator.scala:727) | |
at scala.collection.AbstractIterator.foreach(Iterator.scala:1157) | |
at scala.tools.nsc.Global$GlobalPhase.run(Global.scala:431) | |
at scala.tools.nsc.Global$Run.compileUnitsInternal(Global.scala:1583) | |
at scala.tools.nsc.Global$Run.compileUnits(Global.scala:1557) | |
at scala.tools.nsc.Global$Run.compileSources(Global.scala:1553) | |
at scala.tools.nsc.Global$Run.compile(Global.scala:1662) | |
at xsbt.CachedCompiler0.run(CompilerInterface.scala:123) | |
at xsbt.CachedCompiler0.run(CompilerInterface.scala:99) | |
at xsbt.CompilerInterface.run(CompilerInterface.scala:27) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
at java.lang.reflect.Method.invoke(Method.java:606) | |
at sbt.compiler.AnalyzingCompiler.call(AnalyzingCompiler.scala:102) | |
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:48) | |
at sbt.compiler.AnalyzingCompiler.compile(AnalyzingCompiler.scala:41) | |
at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply$mcV$sp(AggressiveCompile.scala:98) | |
at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:98) | |
at sbt.compiler.AggressiveCompile$$anonfun$3$$anonfun$compileScala$1$1.apply(AggressiveCompile.scala:98) | |
at sbt.compiler.AggressiveCompile.sbt$compiler$AggressiveCompile$$timed(AggressiveCompile.scala:159) | |
at sbt.compiler.AggressiveCompile$$anonfun$3.compileScala$1(AggressiveCompile.scala:97) | |
at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:142) | |
at sbt.compiler.AggressiveCompile$$anonfun$3.apply(AggressiveCompile.scala:86) | |
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:38) | |
at sbt.inc.IncrementalCompile$$anonfun$doCompile$1.apply(Compile.scala:36) | |
at sbt.inc.Incremental$.cycle(Incremental.scala:73) | |
at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:33) | |
at sbt.inc.Incremental$$anonfun$1.apply(Incremental.scala:32) | |
at sbt.inc.Incremental$.manageClassfiles(Incremental.scala:41) | |
at sbt.inc.Incremental$.compile(Incremental.scala:32) | |
at sbt.inc.IncrementalCompile$.apply(Compile.scala:26) | |
at sbt.compiler.AggressiveCompile.compile2(AggressiveCompile.scala:150) | |
at sbt.compiler.AggressiveCompile.compile1(AggressiveCompile.scala:70) | |
at sbt.compiler.AggressiveCompile.apply(AggressiveCompile.scala:45) | |
at sbt.Compiler$.apply(Compiler.scala:70) | |
at sbt.Defaults$.sbt$Defaults$$compileTaskImpl(Defaults.scala:736) | |
at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:730) | |
at sbt.Defaults$$anonfun$compileTask$1.apply(Defaults.scala:730) | |
at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47) | |
at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42) | |
at sbt.std.Transform$$anon$4.work(System.scala:64) | |
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) | |
at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237) | |
at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18) | |
at sbt.Execute.work(Execute.scala:244) | |
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) | |
at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237) | |
at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160) | |
at sbt.CompletionService$$anon$2.call(CompletionService.scala:30) | |
at java.util.concurrent.FutureTask.run(FutureTask.java:262) | |
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) | |
at java.util.concurrent.FutureTask.run(FutureTask.java:262) | |
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) | |
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) | |
at java.lang.Thread.run(Thread.java:744) | |
[error] (compile:compile) java.lang.IllegalArgumentException: Could not find proxy for ma: Object in List(value ma, method flatMap, class Monad$class, object Monads, package <empty>, package <root>) (currentOwner= method apply ) | |
[error] Total time: 11 s, completed 01.01.2014 17:02:38 | |
compiler.bug $ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment