What complaint does the compiler have?
-Ross
On Aug 6, 2009, at 2:06 PM, jon wrote:
I'd like to do something like
def findAll[T : LongKeyedMapper[T],M : LongKeyedMetaMapper[T]]
(metaObject: M): List[T] = {
metaObject.findAll
}
val users:List[User] = findAll(User)
Pull M out as a type parameter and just declare the value parameter to be
whatever M means.
-
Ross Mellgrendri...@gmail.com wrote:
What complaint does the compiler have?
-Ross
On Aug 6, 2009, at 2:06 PM, jon wrote:
I'd like to do something like
val users:List[User] = findAll(User)
-- inferred type arguments [Nothing,object com.x.lift.model.User] do
not conform to method findAll's type parameter bounds [T :
net.liftweb.mapper.LongKeyedMapper[T],M :
net.liftweb.mapper.LongKeyedMetaMapper[T]]
if i change to:
val users:List[User] =
Thanks Naftoli,
is this what you mean?
def findAll[T : LongKeyedMapper[T]] (metaObject:
LongKeyedMetaMapper[T]): List[T] = {
metaObject.findAll
}
**val users:List[User] = findAll[User](User)
still get **- type arguments [com.udorse.lift.model.User] do not
conform to
Naftoli's suggestion is good, but I think your problem now is that
User is not : LongKeyedMapper, it's : KeyedMapper. Here's one that
compiles:
object Test {
def findAll[T](m: KeyedMetaMapper[_, T]) = m.findAll
def test {
val users: List[User] = findAll(User)
excellent!
thank you both.
- jon
On Aug 6, 3:47 pm, Ross Mellgren dri...@gmail.com wrote:
Naftoli's suggestion is good, but I think your problem now is that
User is not : LongKeyedMapper, it's : KeyedMapper. Here's one that
compiles:
object Test {
def findAll[T](m: