aboutsummaryrefslogtreecommitdiff
path: root/src/dotty/tools/dotc/core/TyperState.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-11-04 11:29:00 +0100
committerMartin Odersky <odersky@gmail.com>2013-11-04 11:29:00 +0100
commitab95d83444c6397f8859713dd6606602c77c8d23 (patch)
treefa490998a0ab2d72e4d86760417193a5e504374d /src/dotty/tools/dotc/core/TyperState.scala
parent19b6784ef1cae9cd0af278c0c3afcee47c0a00ea (diff)
downloaddotty-ab95d83444c6397f8859713dd6606602c77c8d23.tar.gz
dotty-ab95d83444c6397f8859713dd6606602c77c8d23.tar.bz2
dotty-ab95d83444c6397f8859713dd6606602c77c8d23.zip
Upgraded handling of positions
It turned out the some trees were still carrying NoPosition in their pos fields. The new treatment avoids that and aslo adds some assertions to check for regressions.
Diffstat (limited to 'src/dotty/tools/dotc/core/TyperState.scala')
-rw-r--r--src/dotty/tools/dotc/core/TyperState.scala8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/core/TyperState.scala b/src/dotty/tools/dotc/core/TyperState.scala
index 8fbd3502c..664655d7c 100644
--- a/src/dotty/tools/dotc/core/TyperState.scala
+++ b/src/dotty/tools/dotc/core/TyperState.scala
@@ -127,10 +127,16 @@ extends TyperState(reporter) {
override def withCheckingDisabled[T](op: => T)(implicit ctx: Context): T = {
val prev = enableChecking(false)
+ var thrown = false
try op
+ catch {
+ case ex: Throwable =>
+ thrown = true
+ throw ex
+ }
finally {
enableChecking(prev)
- checkConsistent
+ if (!thrown) checkConsistent
}
}