summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorEugene Yokota <eed3si9n@gmail.com>2013-04-20 21:12:39 -0400
committerEugene Yokota <eed3si9n@gmail.com>2013-04-20 21:12:39 -0400
commit1d1492f7217f8f75f62febf1f68131931b31bfe2 (patch)
tree35866756a2359379dd6e0834e5fa258ea3c39779 /test
parent68c6ba7e59befa88b2f383dd7eca71a9329a8b6d (diff)
downloadscala-1d1492f7217f8f75f62febf1f68131931b31bfe2.tar.gz
scala-1d1492f7217f8f75f62febf1f68131931b31bfe2.tar.bz2
scala-1d1492f7217f8f75f62febf1f68131931b31bfe2.zip
Add :kind command to REPL
:kind command diplays the kind of types and type constructors in Scala syntax notation. scala> :kind (Int, Int) => Int scala.Function2's kind is F[-A1,-A2,+A3]
Diffstat (limited to 'test')
-rw-r--r--test/files/run/kind-repl-command.check32
-rw-r--r--test/files/run/kind-repl-command.scala12
2 files changed, 44 insertions, 0 deletions
diff --git a/test/files/run/kind-repl-command.check b/test/files/run/kind-repl-command.check
new file mode 100644
index 0000000000..afa32acdae
--- /dev/null
+++ b/test/files/run/kind-repl-command.check
@@ -0,0 +1,32 @@
+Type in expressions to have them evaluated.
+Type :help for more information.
+
+scala>
+
+scala> :kind scala.Option
+scala.Option's kind is F[+A]
+
+scala> :k (Int, Int) => Int
+scala.Function2's kind is F[-A1,-A2,+A3]
+
+scala> :k -v Either
+scala.util.Either's kind is F[+A1,+A2]
+* -(+)-> * -(+)-> *
+This is a type constructor: a 1st-order-kinded type.
+
+scala> :k -v scala.collection.generic.ImmutableSortedMapFactory
+scala.collection.generic.ImmutableSortedMapFactory's kind is X[CC[A,B] <: scala.collection.immutable.SortedMap[A,B] with scala.collection.SortedMapLike[A,B,CC[A,B]]]
+(* -> * -> *(scala.collection.immutable.SortedMap[A,B] with scala.collection.SortedMapLike[A,B,CC[A,B]])) -> *
+This is a type constructor that takes type constructor(s): a higher-kinded type.
+
+scala> :k new { def empty = false }
+AnyRef{def empty: Boolean}'s kind is A
+
+scala> :k Nonexisting
+<console>:8: error: not found: value Nonexisting
+ Nonexisting
+ ^
+
+scala>
+
+scala>
diff --git a/test/files/run/kind-repl-command.scala b/test/files/run/kind-repl-command.scala
new file mode 100644
index 0000000000..df1fafb667
--- /dev/null
+++ b/test/files/run/kind-repl-command.scala
@@ -0,0 +1,12 @@
+import scala.tools.partest.ReplTest
+
+object Test extends ReplTest {
+ def code = """
+ |:kind scala.Option
+ |:k (Int, Int) => Int
+ |:k -v Either
+ |:k -v scala.collection.generic.ImmutableSortedMapFactory
+ |:k new { def empty = false }
+ |:k Nonexisting
+ """.stripMargin
+}