Weird, I recompiled Spark with a similar change to Model and it seemed to work but maybe I missed a step in there.
On Wed, Aug 31, 2016 at 6:33 AM, Mohit Jaggi <mohitja...@gmail.com> wrote: > I think I figured it out. There is indeed "something deeper in Scala” :-) > > abstract class A { > def a: this.type > } > > class AA(i: Int) extends A { > def a = this > } > > the above works ok. But if you return anything other than “this”, you will > get a compile error. > > abstract class A { > def a: this.type > } > > class AA(i: Int) extends A { > def a = new AA(1) > } > > Error:(33, 11) type mismatch; > found : com.dataorchard.datagears.AA > required: AA.this.type > def a = new AA(1) > ^ > > So you have to do: > > abstract class A[T <: A[T]] { > def a: T > } > > class AA(i: Int) extends A[AA] { > def a = new AA(1) > } > > > > Mohit Jaggi > Founder, > Data Orchard LLC > www.dataorchardllc.com > > --------------------------------------------------------------------- To unsubscribe e-mail: dev-unsubscr...@spark.apache.org