diff options
author | Antoine Gourlay <antoine@gourlay.fr> | 2013-08-16 17:22:18 +0200 |
---|---|---|
committer | Antoine Gourlay <antoine@gourlay.fr> | 2013-08-16 17:22:18 +0200 |
commit | 6db8a523e32c093c70b27797628bacbda78b81bb (patch) | |
tree | 496138c6840e8f999d02b6c11e05ef128b938fc0 /test/files/run | |
parent | f17fb5eaa545490c761acd4f6979a619f919ac86 (diff) | |
download | scala-6db8a523e32c093c70b27797628bacbda78b81bb.tar.gz scala-6db8a523e32c093c70b27797628bacbda78b81bb.tar.bz2 scala-6db8a523e32c093c70b27797628bacbda78b81bb.zip |
SI-6507 do not call .toString on REPL results when :silent is on.
Member handlers used to always call .toString on REPL results, even when
:silent was on, which could force evaluation or cause unwanted side
effects.
This forwards the current value of `printResults` to the member
handlers (through Request) for them to decide what to do when the
results must not be printed.
2 handlers now do not return any extraction code when silent:
- ValHandler, so that it doesn't call toString on the val
- Assign, so that it doesn't call toString on the right-hand side
of the assignement.
Diffstat (limited to 'test/files/run')
-rw-r--r-- | test/files/run/t6507.check | 26 | ||||
-rw-r--r-- | test/files/run/t6507.scala | 14 |
2 files changed, 40 insertions, 0 deletions
diff --git a/test/files/run/t6507.check b/test/files/run/t6507.check new file mode 100644 index 0000000000..336db0aeaf --- /dev/null +++ b/test/files/run/t6507.check @@ -0,0 +1,26 @@ +Type in expressions to have them evaluated. +Type :help for more information. + +scala> + +scala> :silent +Switched off result printing. + +scala> class A { override def toString() = { println("!"); "A" } } + +scala> val a = new A + +scala> var b: A = new A + +scala> b = new A + +scala> new A + +scala> :silent +Switched on result printing. + +scala> res0 +! +res1: A = A + +scala> diff --git a/test/files/run/t6507.scala b/test/files/run/t6507.scala new file mode 100644 index 0000000000..25f0a73e04 --- /dev/null +++ b/test/files/run/t6507.scala @@ -0,0 +1,14 @@ +import scala.tools.partest.ReplTest + +object Test extends ReplTest { + def code = """ +:silent +class A { override def toString() = { println("!"); "A" } } +val a = new A +var b: A = new A +b = new A +new A +:silent +res0 +""" +} |