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: KeyedMetaMapper[_, T]) = m.findAll
>
>      def test {
>          val users: List[User] = findAll(User)
>          users
>      }
>
> }
>
> On Aug 6, 2009, at 3:39 PM, jon wrote:
>
>
>
>
>
> > 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 method findAll's type parameter bounds [T <:
> > net.liftweb.mapper.LongKeyedMapper[T]]
>
> > On Aug 6, 3:30 pm, Naftoli Gugenheim <naftoli...@gmail.com> wrote:
> >> Pull M out as a type parameter and just declare the value parameter  
> >> to be whatever M means.
>
> >> -------------------------------------
>
> >> Ross Mellgren<dri...@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
>
> >>>     def findAll[T <: LongKeyedMapper[T],M <: LongKeyedMetaMapper[T]]
> >>> (metaObject: M): List[T] = {
> >>>       metaObject.findAll
> >>>     }
>
> >>>     val users:List[User] = findAll(User)
> >>>     val foos:List[Foo] = findAll(Foo)
>
> >>> But the compiler won't have it.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to liftweb@googlegroups.com
To unsubscribe from this group, send email to 
liftweb+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/liftweb?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to