From 3bb8745ca7dcda8c81103b3965b83973b4a72214 Mon Sep 17 00:00:00 2001 From: Som Snytt Date: Thu, 10 Jan 2013 13:33:45 -0800 Subject: Fixes and features for javap (fixing SI-6894) Output filtering is refactored for javap6. That means javap6 also supports -raw. Handling of # is: Foo#foo filter on foo, Foo# filter on apply, -fun Foo#foo for anonfuns of foo, -fun Foo# anonfuns filtering on apply. One is loath to add command options, so it's not possible to ask for "only apply methods in anonfuns pertaining to a method." Hypothetical syntax to say "show me the apply only": -fun Foo#foo(), for future reference. --- test/files/run/repl-javap-outdir-funs/foo_1.scala | 6 ++++++ test/files/run/repl-javap-outdir-funs/run-repl_7.scala | 12 ++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 test/files/run/repl-javap-outdir-funs/foo_1.scala create mode 100644 test/files/run/repl-javap-outdir-funs/run-repl_7.scala (limited to 'test') diff --git a/test/files/run/repl-javap-outdir-funs/foo_1.scala b/test/files/run/repl-javap-outdir-funs/foo_1.scala new file mode 100644 index 0000000000..9b98e94733 --- /dev/null +++ b/test/files/run/repl-javap-outdir-funs/foo_1.scala @@ -0,0 +1,6 @@ + +package disktest + +class Foo { + def m(vs: List[Int]) = vs map (_ + 1) +} diff --git a/test/files/run/repl-javap-outdir-funs/run-repl_7.scala b/test/files/run/repl-javap-outdir-funs/run-repl_7.scala new file mode 100644 index 0000000000..dfe3dae270 --- /dev/null +++ b/test/files/run/repl-javap-outdir-funs/run-repl_7.scala @@ -0,0 +1,12 @@ +import scala.tools.partest.JavapTest + +object Test extends JavapTest { + def code = """ + |:javap -fun disktest/Foo.class + """.stripMargin + + override def yah(res: Seq[String]) = { + def filtered = res filter (_ contains "public final class disktest.Foo") + 1 == filtered.size + } +} -- cgit v1.2.3 From f7490d51bf03ca45749b767b0bf36131a466b2ee Mon Sep 17 00:00:00 2001 From: Som Snytt Date: Fri, 11 Jan 2013 11:38:14 -0800 Subject: Restore pending repl-javap tests that now succeed under java 6. Knock on wood. --- test/files/run/repl-javap-def.scala | 17 +++++++++++++++++ test/files/run/repl-javap-fun.scala | 16 ++++++++++++++++ test/files/run/repl-javap-mem.scala | 19 +++++++++++++++++++ test/files/run/repl-javap-memfun.scala | 18 ++++++++++++++++++ test/files/run/repl-javap-more-fun.scala | 17 +++++++++++++++++ test/files/run/repl-javap-outdir/foo_1.scala | 6 ++++++ test/files/run/repl-javap-outdir/run-repl_7.scala | 12 ++++++++++++ test/files/run/repl-javap.scala | 13 +++++++++++++ test/pending/run/repl-javap-def.scala | 17 ----------------- test/pending/run/repl-javap-fun.scala | 16 ---------------- test/pending/run/repl-javap-mem.scala | 19 ------------------- test/pending/run/repl-javap-memfun.scala | 18 ------------------ test/pending/run/repl-javap-more-fun.scala | 17 ----------------- test/pending/run/repl-javap-outdir/foo_1.scala | 6 ------ test/pending/run/repl-javap-outdir/run-repl_7.scala | 12 ------------ test/pending/run/repl-javap.scala | 13 ------------- 16 files changed, 118 insertions(+), 118 deletions(-) create mode 100644 test/files/run/repl-javap-def.scala create mode 100644 test/files/run/repl-javap-fun.scala create mode 100644 test/files/run/repl-javap-mem.scala create mode 100644 test/files/run/repl-javap-memfun.scala create mode 100644 test/files/run/repl-javap-more-fun.scala create mode 100644 test/files/run/repl-javap-outdir/foo_1.scala create mode 100644 test/files/run/repl-javap-outdir/run-repl_7.scala create mode 100644 test/files/run/repl-javap.scala delete mode 100644 test/pending/run/repl-javap-def.scala delete mode 100644 test/pending/run/repl-javap-fun.scala delete mode 100644 test/pending/run/repl-javap-mem.scala delete mode 100644 test/pending/run/repl-javap-memfun.scala delete mode 100644 test/pending/run/repl-javap-more-fun.scala delete mode 100644 test/pending/run/repl-javap-outdir/foo_1.scala delete mode 100644 test/pending/run/repl-javap-outdir/run-repl_7.scala delete mode 100644 test/pending/run/repl-javap.scala (limited to 'test') diff --git a/test/files/run/repl-javap-def.scala b/test/files/run/repl-javap-def.scala new file mode 100644 index 0000000000..dbd769613a --- /dev/null +++ b/test/files/run/repl-javap-def.scala @@ -0,0 +1,17 @@ +import scala.tools.partest.JavapTest + +object Test extends JavapTest { + def code = """ + |def f = 7 + |:javap -public -raw f + """.stripMargin + + // it should find f wrapped in repl skins. replstiltskin. + override def yah(res: Seq[String]) = { + // replstiltskin: what be my name? + val keywords = List("public", "class", "line") + def isLineClass(s: String) = keywords forall (s contains _) + def filtered = res filter isLineClass + 1 == filtered.size + } +} diff --git a/test/files/run/repl-javap-fun.scala b/test/files/run/repl-javap-fun.scala new file mode 100644 index 0000000000..5c9a6b7691 --- /dev/null +++ b/test/files/run/repl-javap-fun.scala @@ -0,0 +1,16 @@ +import scala.tools.partest.JavapTest + +object Test extends JavapTest { + def code = """ + |object Betty { + | List(1,2,3) filter (_ % 2 != 0) map (_ * 2) + |} + |:javap -fun Betty + """.stripMargin + + // two anonfuns of Betty + override def yah(res: Seq[String]) = { + def filtered = res filter (_ contains "public final class Betty") + 2 == filtered.size + } +} diff --git a/test/files/run/repl-javap-mem.scala b/test/files/run/repl-javap-mem.scala new file mode 100644 index 0000000000..8db30e835c --- /dev/null +++ b/test/files/run/repl-javap-mem.scala @@ -0,0 +1,19 @@ +import scala.tools.partest.JavapTest + +object Test extends JavapTest { + def code = """ + |object Betty { + | val ds = List(1,2,3) filter (_ % 2 == 0) map (_ * 3) + | def m(vs: List[Int]) = vs filter (_ % 2 != 0) map (_ * 2) + |} + |:javap Betty#m + """.stripMargin + + // filter for requested method member + override def yah(res: Seq[String]) = { + // cheaply, methods end in arg list + val p = """.*m\(.*\);""".r + def filtered = res filter (_ match { case p() => true case _ => false }) + 1 == filtered.size + } +} diff --git a/test/files/run/repl-javap-memfun.scala b/test/files/run/repl-javap-memfun.scala new file mode 100644 index 0000000000..d2b4243c8b --- /dev/null +++ b/test/files/run/repl-javap-memfun.scala @@ -0,0 +1,18 @@ +import scala.tools.partest.JavapTest + +object Test extends JavapTest { + def code = """ + |object Betty { + | List(1,2,3) count (_ % 2 != 0) + | def f = List(1,2,3) filter (_ % 2 != 0) map (_ * 2) + | def g = List(1,2,3) filter (_ % 2 == 0) map (_ * 3) map (_ + 1) + |} + |:javap -fun Betty#g + """.stripMargin + + // three anonfuns of Betty#g + override def yah(res: Seq[String]) = { + def filtered = res filter (_ contains "public final class Betty") + 3 == filtered.size + } +} diff --git a/test/files/run/repl-javap-more-fun.scala b/test/files/run/repl-javap-more-fun.scala new file mode 100644 index 0000000000..e603faf75a --- /dev/null +++ b/test/files/run/repl-javap-more-fun.scala @@ -0,0 +1,17 @@ +import scala.tools.partest.JavapTest + +object Test extends JavapTest { + def code = """ + |object Betty { + | val ds = List(1,2,3) filter (_ % 2 == 0) map (_ * 3) + | def m(vs: List[Int]) = vs filter (_ % 2 != 0) map (_ * 2) + |} + |:javap -fun Betty + """.stripMargin + + // two anonfuns of Betty + override def yah(res: Seq[String]) = { + def filtered = res filter (_ contains "public final class Betty") + 4 == filtered.size + } +} diff --git a/test/files/run/repl-javap-outdir/foo_1.scala b/test/files/run/repl-javap-outdir/foo_1.scala new file mode 100644 index 0000000000..9b98e94733 --- /dev/null +++ b/test/files/run/repl-javap-outdir/foo_1.scala @@ -0,0 +1,6 @@ + +package disktest + +class Foo { + def m(vs: List[Int]) = vs map (_ + 1) +} diff --git a/test/files/run/repl-javap-outdir/run-repl_7.scala b/test/files/run/repl-javap-outdir/run-repl_7.scala new file mode 100644 index 0000000000..dc2c5719ff --- /dev/null +++ b/test/files/run/repl-javap-outdir/run-repl_7.scala @@ -0,0 +1,12 @@ +import scala.tools.partest.JavapTest + +object Test extends JavapTest { + def code = """ + |:javap disktest/Foo.class + """.stripMargin + + override def yah(res: Seq[String]) = { + def filtered = res filter (_ contains "public class disktest.Foo") + 1 == filtered.size + } +} diff --git a/test/files/run/repl-javap.scala b/test/files/run/repl-javap.scala new file mode 100644 index 0000000000..7a19852d4e --- /dev/null +++ b/test/files/run/repl-javap.scala @@ -0,0 +1,13 @@ +import scala.tools.partest.JavapTest + +object Test extends JavapTest { + def code = """ + |case class Betty(i: Int) { def next = Betty(i+1) } + |:javap Betty + """.stripMargin + + override def yah(res: Seq[String]) = { + def filtered = res filter (_ contains "public class Betty") + 1 == filtered.size + } +} diff --git a/test/pending/run/repl-javap-def.scala b/test/pending/run/repl-javap-def.scala deleted file mode 100644 index dbd769613a..0000000000 --- a/test/pending/run/repl-javap-def.scala +++ /dev/null @@ -1,17 +0,0 @@ -import scala.tools.partest.JavapTest - -object Test extends JavapTest { - def code = """ - |def f = 7 - |:javap -public -raw f - """.stripMargin - - // it should find f wrapped in repl skins. replstiltskin. - override def yah(res: Seq[String]) = { - // replstiltskin: what be my name? - val keywords = List("public", "class", "line") - def isLineClass(s: String) = keywords forall (s contains _) - def filtered = res filter isLineClass - 1 == filtered.size - } -} diff --git a/test/pending/run/repl-javap-fun.scala b/test/pending/run/repl-javap-fun.scala deleted file mode 100644 index 5c9a6b7691..0000000000 --- a/test/pending/run/repl-javap-fun.scala +++ /dev/null @@ -1,16 +0,0 @@ -import scala.tools.partest.JavapTest - -object Test extends JavapTest { - def code = """ - |object Betty { - | List(1,2,3) filter (_ % 2 != 0) map (_ * 2) - |} - |:javap -fun Betty - """.stripMargin - - // two anonfuns of Betty - override def yah(res: Seq[String]) = { - def filtered = res filter (_ contains "public final class Betty") - 2 == filtered.size - } -} diff --git a/test/pending/run/repl-javap-mem.scala b/test/pending/run/repl-javap-mem.scala deleted file mode 100644 index 8db30e835c..0000000000 --- a/test/pending/run/repl-javap-mem.scala +++ /dev/null @@ -1,19 +0,0 @@ -import scala.tools.partest.JavapTest - -object Test extends JavapTest { - def code = """ - |object Betty { - | val ds = List(1,2,3) filter (_ % 2 == 0) map (_ * 3) - | def m(vs: List[Int]) = vs filter (_ % 2 != 0) map (_ * 2) - |} - |:javap Betty#m - """.stripMargin - - // filter for requested method member - override def yah(res: Seq[String]) = { - // cheaply, methods end in arg list - val p = """.*m\(.*\);""".r - def filtered = res filter (_ match { case p() => true case _ => false }) - 1 == filtered.size - } -} diff --git a/test/pending/run/repl-javap-memfun.scala b/test/pending/run/repl-javap-memfun.scala deleted file mode 100644 index d2b4243c8b..0000000000 --- a/test/pending/run/repl-javap-memfun.scala +++ /dev/null @@ -1,18 +0,0 @@ -import scala.tools.partest.JavapTest - -object Test extends JavapTest { - def code = """ - |object Betty { - | List(1,2,3) count (_ % 2 != 0) - | def f = List(1,2,3) filter (_ % 2 != 0) map (_ * 2) - | def g = List(1,2,3) filter (_ % 2 == 0) map (_ * 3) map (_ + 1) - |} - |:javap -fun Betty#g - """.stripMargin - - // three anonfuns of Betty#g - override def yah(res: Seq[String]) = { - def filtered = res filter (_ contains "public final class Betty") - 3 == filtered.size - } -} diff --git a/test/pending/run/repl-javap-more-fun.scala b/test/pending/run/repl-javap-more-fun.scala deleted file mode 100644 index e603faf75a..0000000000 --- a/test/pending/run/repl-javap-more-fun.scala +++ /dev/null @@ -1,17 +0,0 @@ -import scala.tools.partest.JavapTest - -object Test extends JavapTest { - def code = """ - |object Betty { - | val ds = List(1,2,3) filter (_ % 2 == 0) map (_ * 3) - | def m(vs: List[Int]) = vs filter (_ % 2 != 0) map (_ * 2) - |} - |:javap -fun Betty - """.stripMargin - - // two anonfuns of Betty - override def yah(res: Seq[String]) = { - def filtered = res filter (_ contains "public final class Betty") - 4 == filtered.size - } -} diff --git a/test/pending/run/repl-javap-outdir/foo_1.scala b/test/pending/run/repl-javap-outdir/foo_1.scala deleted file mode 100644 index 9b98e94733..0000000000 --- a/test/pending/run/repl-javap-outdir/foo_1.scala +++ /dev/null @@ -1,6 +0,0 @@ - -package disktest - -class Foo { - def m(vs: List[Int]) = vs map (_ + 1) -} diff --git a/test/pending/run/repl-javap-outdir/run-repl_7.scala b/test/pending/run/repl-javap-outdir/run-repl_7.scala deleted file mode 100644 index dc2c5719ff..0000000000 --- a/test/pending/run/repl-javap-outdir/run-repl_7.scala +++ /dev/null @@ -1,12 +0,0 @@ -import scala.tools.partest.JavapTest - -object Test extends JavapTest { - def code = """ - |:javap disktest/Foo.class - """.stripMargin - - override def yah(res: Seq[String]) = { - def filtered = res filter (_ contains "public class disktest.Foo") - 1 == filtered.size - } -} diff --git a/test/pending/run/repl-javap.scala b/test/pending/run/repl-javap.scala deleted file mode 100644 index 7a19852d4e..0000000000 --- a/test/pending/run/repl-javap.scala +++ /dev/null @@ -1,13 +0,0 @@ -import scala.tools.partest.JavapTest - -object Test extends JavapTest { - def code = """ - |case class Betty(i: Int) { def next = Betty(i+1) } - |:javap Betty - """.stripMargin - - override def yah(res: Seq[String]) = { - def filtered = res filter (_ contains "public class Betty") - 1 == filtered.size - } -} -- cgit v1.2.3