Playing around with this a little more, it seems that classOf[Animal] is "this.Animal" in Spark and "Animal" in normal Scala.
Also, trying to do something like this: class Zoo[A <: *this.*Animal](thing: A) { } works in Scala but throws a weird error in Spark: "error: type Animal is not a member of this.$iwC" On Fri, Oct 11, 2013 at 4:55 PM, Shay Seng <s...@1618labs.com> wrote: > Hey, > I seeing a funny situation where a piece of code executes in a pure Scala > REPL but not in a Spark-shell. > I'm using Scala 2.9.3 with Spark 0.8.0 > > In Spark I see: > class Animal() { > def says():String = "???" > } > > val amimal = new Animal > amimal: this.Animal = Animal@df27cd5 > > class Zoo[A <: Animal](thing: A) { > def whoami()=thing.getClass > def chat()=thing.says > } > > val z = new Zoo[Animal](amimal) > <console>:16: error: type mismatch; > found : this.Animal > required: this.Animal > val z = new Zoo[Animal](amimal) > ^ > > But if I run the exact code in the scala REPL: > > val z = new Zoo[Animal](amimal) > z: Zoo[Animal] = Zoo@738ff53f > > > Both repl report using scala 2.9.3 > Spark: "Using Scala version 2.9.3 (Java HotSpot(TM) 64-Bit Server VM, Java > 1.7.0_40)" > Scala: "Welcome to Scala version 2.9.3 (Java HotSpot(TM) 64-Bit Server VM, > Java 1.7.0_40)." > Any ideas? > > tks, > Shay >