From 3a4750825e3b3992adcddd4666f264d508e21f7a Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Thu, 1 Nov 2007 17:35:15 +0000 Subject: fixed ticket 91 --- test/files/pos/typerep.scala | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 test/files/pos/typerep.scala (limited to 'test/files/pos/typerep.scala') diff --git a/test/files/pos/typerep.scala b/test/files/pos/typerep.scala new file mode 100644 index 0000000000..7faa8a1928 --- /dev/null +++ b/test/files/pos/typerep.scala @@ -0,0 +1,21 @@ +object typerep extends Application { + class TypeRep[T] {} + case object IntRep extends TypeRep[Int] { + override def toString = "Int" + } + case object BooleanRep extends TypeRep[Boolean] { + override def toString = "Boolean" + } + case class ListRep[T](elemrep: TypeRep[T]) extends TypeRep[List[T]] { + override def toString = "List" + } + + implicit def intRep: TypeRep[Int] = IntRep + implicit def booleanRep: TypeRep[Boolean] = BooleanRep + implicit def listRep[T](implicit elemrep: TypeRep[T]): TypeRep[List[T]] = ListRep(elemrep) + + def getType[T](x: T)(implicit rep: TypeRep[T]): TypeRep[T] = rep + + println(getType(1)) + println(getType(List(1))) +} -- cgit v1.2.3