diff options
author | Som Snytt <som.snytt@gmail.com> | 2014-10-18 22:43:57 -0700 |
---|---|---|
committer | Som Snytt <som.snytt@gmail.com> | 2014-11-04 07:49:16 -0800 |
commit | d7835d62cf0093e4a8f17f6eabd334e74be6ffcb (patch) | |
tree | 99624fca28f394aacc2738e8ff347970c4579240 /src/repl/scala/tools/nsc/interpreter/package.scala | |
parent | 2b5df373638d08204b71258928289f6b39e25d5f (diff) | |
download | scala-d7835d62cf0093e4a8f17f6eabd334e74be6ffcb.tar.gz scala-d7835d62cf0093e4a8f17f6eabd334e74be6ffcb.tar.bz2 scala-d7835d62cf0093e4a8f17f6eabd334e74be6ffcb.zip |
SI-8898 javap -fun under new style lambdas
To support both -Ydelambdafy strategies, look for both inline
(anonfun) and method (lambda) closure classes.
For method (lambda) style, use the anonfun method that is
invoked by the accessor.
Also, the output of javap must be captured eagerly for
filtering for the current target method.
If the user asks for a module, e.g., `Foo$`, don't yield
results for companion class, but for `Foo`, do yield
companion module results. Just because.
Diffstat (limited to 'src/repl/scala/tools/nsc/interpreter/package.scala')
-rw-r--r-- | src/repl/scala/tools/nsc/interpreter/package.scala | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/repl/scala/tools/nsc/interpreter/package.scala b/src/repl/scala/tools/nsc/interpreter/package.scala index 079097d7a2..56f1e65376 100644 --- a/src/repl/scala/tools/nsc/interpreter/package.scala +++ b/src/repl/scala/tools/nsc/interpreter/package.scala @@ -11,6 +11,7 @@ import scala.reflect.runtime.{ universe => ru } import scala.reflect.{ClassTag, classTag} import scala.reflect.api.{Mirror, TypeCreator, Universe => ApiUniverse} import scala.util.control.Exception.catching +import scala.util.Try /** The main REPL related classes and values are as follows. * In addition to standard compiler classes Global and Settings, there are: @@ -196,4 +197,14 @@ package object interpreter extends ReplConfig with ReplStrings { } } } + + /* debug assist + private[nsc] implicit class `smart stringifier`(val sc: StringContext) extends AnyVal { + import StringContext._, runtime.ScalaRunTime.stringOf + def ss(args: Any*): String = sc.standardInterpolator(treatEscapes, args map stringOf) + } debug assist */ + private[nsc] implicit class `try lastly`[A](val t: Try[A]) extends AnyVal { + private def effect[X](last: =>Unit)(a: X): Try[A] = { last; t } + def lastly(last: =>Unit): Try[A] = t transform (effect(last) _, effect(last) _) + } } |