summaryrefslogtreecommitdiff
path: root/test/files/run/t7319.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-04-01 11:37:57 +0200
committerJason Zaugg <jzaugg@gmail.com>2013-04-15 14:27:04 +0200
commitef04619e3032dd513bf2e219a03ecf53e8dc8ce6 (patch)
tree37a3f2ef41364c57ad350c07a89912f09ce91dcc /test/files/run/t7319.scala
parentfc65423d8d6a7548393d212e17c8563cf40bcfc0 (diff)
downloadscala-ef04619e3032dd513bf2e219a03ecf53e8dc8ce6.tar.gz
scala-ef04619e3032dd513bf2e219a03ecf53e8dc8ce6.tar.bz2
scala-ef04619e3032dd513bf2e219a03ecf53e8dc8ce6.zip
SI-7319 Clear error buffer during Typer reset.
Contexts share error/warning buffers with their children, and this also applies ot the shared `startContext`. That context flushes the buffers in `startContext` in `resetContexts`. It also removes `typerReportAnyContextErrors`, which appears to be an elaborate no-op. It is only ever passed a context `c` which is a direct child of `this.context`. So taking a buffered error out of `c` and reissuing it into `this.context` merely re-inserts into into the same error buffer. Consrast this with `silent`, which uses a child context with a fresh error buffer. SI-7319 Flush error buffer in typerReportAnyContextErrors. After this change, we no longer rely on the backstop in resetContexts introduced in the previous commit.
Diffstat (limited to 'test/files/run/t7319.scala')
-rw-r--r--test/files/run/t7319.scala13
1 files changed, 13 insertions, 0 deletions
diff --git a/test/files/run/t7319.scala b/test/files/run/t7319.scala
new file mode 100644
index 0000000000..23ffeb977d
--- /dev/null
+++ b/test/files/run/t7319.scala
@@ -0,0 +1,13 @@
+import scala.tools.partest.ReplTest
+
+object Test extends ReplTest {
+ // so we can provide the ambiguities, rather than relying in Predef implicits
+ override def extraSettings = "-Yno-predef"
+ override def code = """
+class M[A]
+implicit def ma0[A](a: A): M[A] = null
+implicit def ma1[A](a: A): M[A] = null
+def convert[F[X <: F[X]]](builder: F[_ <: F[_]]) = 0
+convert(Some[Int](0))
+0""" // before the fix, this line, and all that followed, re-issued the implicit ambiguity error.
+}