aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAlexander Myltsev <alexander.myltsev@phystech.edu>2015-07-23 15:16:18 +0300
committerAlexander Myltsev <alexander.myltsev@phystech.edu>2015-07-25 17:52:40 +0300
commit2cf567b1023734d481e8511e4e3314246afef6a4 (patch)
tree4e9b2ef2a44e3d4c804504b1ad224706a2069321 /tests
parentcf17b73cc02daf514f6d5499fd7a5562fc93349e (diff)
downloaddotty-2cf567b1023734d481e8511e4e3314246afef6a4.tar.gz
dotty-2cf567b1023734d481e8511e4e3314246afef6a4.tar.bz2
dotty-2cf567b1023734d481e8511e4e3314246afef6a4.zip
Implement getClass method
Diffstat (limited to 'tests')
-rw-r--r--tests/run/getclass.check26
-rw-r--r--tests/run/getclass.scala41
2 files changed, 67 insertions, 0 deletions
diff --git a/tests/run/getclass.check b/tests/run/getclass.check
new file mode 100644
index 000000000..9d88762f4
--- /dev/null
+++ b/tests/run/getclass.check
@@ -0,0 +1,26 @@
+Value types:
+void
+boolean
+byte
+short
+char
+int
+long
+float
+double
+
+Class types:
+class SomeClass
+class ValueClass
+class scala.collection.immutable.$colon$colon
+class scala.Tuple2
+
+Arrays:
+class [Lscala.runtime.BoxedUnit;
+class [I
+class [D
+class [Lscala.collection.immutable.List;
+
+Functions:
+class Test$$$Lambda$1
+class Test$$$Lambda$2
diff --git a/tests/run/getclass.scala b/tests/run/getclass.scala
new file mode 100644
index 000000000..7e6430a53
--- /dev/null
+++ b/tests/run/getclass.scala
@@ -0,0 +1,41 @@
+class ValueClass(val i: Integer) extends AnyVal
+class SomeClass
+
+object Test {
+ def main(args: Array[String]): Unit = {
+ val cls: Predef.Class[_] = new SomeClass().getClass
+ val valCls: Predef.Class[_] = new ValueClass(1).getClass
+ val iCls: Class[Int] = 1.getClass
+ val f1: Function2[Int, Int, Unit] = (a: Int, b: Int) => println(a + b)
+ val f2: Function1[Int, Boolean] = (a: Int) => a % 2 == 0
+
+ println("Value types:")
+ println(().getClass)
+ println(true.getClass)
+ println(1.asInstanceOf[Byte].getClass)
+ println(1.asInstanceOf[Short].getClass)
+ println('a'.getClass)
+ println(1.getClass)
+ println(1L.getClass)
+ println(1f.getClass)
+ println(1d.getClass)
+
+ println("\nClass types:")
+ println(new SomeClass().getClass)
+ println(new ValueClass(1).getClass)
+ println(List(Array(1f)).getClass)
+ println(("a", Map(1 -> "b")).getClass)
+
+ println("\nArrays:")
+ println(Array(()).getClass)
+ println(Array(1).getClass)
+ println(Array(1d).getClass)
+ println(Array(List("1")).getClass)
+
+ println("\nFunctions:")
+ // FunctionN.getClass.toString has form of "class Test$$$Lambda$N/1349414238",
+ // but number (1349414238) depends on environment
+ println(f1.getClass.toString.takeWhile(_ != '/'))
+ println(f2.getClass.toString.takeWhile(_ != '/'))
+ }
+}