Howdy,
I've got a construct:
def hello: T
def size: Int
def sizeStr = size.toString
The OnlyWithFrogs trait must be mixed into a Frog (no, it's not okay to make it derive from Frog). The above code worked with 2.7.5, but fails in 2.8 with:
: error: illegal cyclic reference involving type _$1
[WARNING] self: Frog[_] =>
So, I tried to make my own wildcard:
self: Frog[(Q forSome {type Q})] =>
This compiles, but when I try to create a concrete instance:
object Ribbit extends Frog[String] with OnlyWithFrogs {
The results in the following compile-time error:
[WARNING] error: illegal inheritance;
[WARNING] self-type net.liftweb.mapper.Ribbit.type does not conform to net.liftweb.mapper.OnlyWithFrogs's selftype net.liftweb.mapper.OnlyWithFrogs with net.liftweb.mapper.Frog[Q forSome { type Q }]
[WARNING] object Ribbit extends Frog[String] with OnlyWithFrogs {