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
>

Reply via email to