summaryrefslogtreecommitdiff
path: root/test/files/run/t6331b.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2012-09-08 18:37:59 +0200
committerJason Zaugg <jzaugg@gmail.com>2012-09-08 18:47:49 +0200
commitc619f94a9cfbddc12c9c5df3affb4636f8982a0a (patch)
tree8f0b988c9ab4cdb10723118453a4bda76d753457 /test/files/run/t6331b.scala
parent5b9b394d99bd7e4446e0f15475b34ec287d91685 (diff)
downloadscala-c619f94a9cfbddc12c9c5df3affb4636f8982a0a.tar.gz
scala-c619f94a9cfbddc12c9c5df3affb4636f8982a0a.tar.bz2
scala-c619f94a9cfbddc12c9c5df3affb4636f8982a0a.zip
SI-6331 Avoid typing an If tree with a constant type.
The fast path in typedIf added in 8552740b avoided lubbing the if/else branch types if they are identical, but this fails to deconst the type. This could lead to the entire if expression being replaced by a constant. Also introduces a new tool in partest for nicer checkfiles. // in Test.scala trace(if (t) -0d else 0d) // in Test.check trace> if (Test.this.t) -0.0 else 0.0 res: Double = -0.0
Diffstat (limited to 'test/files/run/t6331b.scala')
-rw-r--r--test/files/run/t6331b.scala20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/files/run/t6331b.scala b/test/files/run/t6331b.scala
new file mode 100644
index 0000000000..f966abea51
--- /dev/null
+++ b/test/files/run/t6331b.scala
@@ -0,0 +1,20 @@
+import scala.tools.partest._
+import java.io._
+import scala.tools.nsc._
+import scala.tools.nsc.util.CommandLineParser
+import scala.tools.nsc.{Global, Settings, CompilerCommand}
+import scala.tools.nsc.reporters.ConsoleReporter
+
+import scala.tools.partest.trace
+import scala.util.control.Exception._
+
+
+object Test extends App {
+ def intercept = allCatch.withApply(_.getClass)
+ val t: Boolean = true
+ trace(if (t) -0d else 0d)
+ trace(if (t) 0d else -0d)
+ trace(intercept(if (???) -0d else 0d))
+ trace(intercept(if (???) 0d else 0d))
+ trace(intercept(if (???) () else ()))
+}