aboutsummaryrefslogtreecommitdiff
path: root/tests/run/getclass.scala
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/run/getclass.scala
parentcf17b73cc02daf514f6d5499fd7a5562fc93349e (diff)
downloaddotty-2cf567b1023734d481e8511e4e3314246afef6a4.tar.gz
dotty-2cf567b1023734d481e8511e4e3314246afef6a4.tar.bz2
dotty-2cf567b1023734d481e8511e4e3314246afef6a4.zip
Implement getClass method
Diffstat (limited to 'tests/run/getclass.scala')
-rw-r--r--tests/run/getclass.scala41
1 files changed, 41 insertions, 0 deletions
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(_ != '/'))
+ }
+}