diff options
author | Martin Odersky <odersky@gmail.com> | 2016-09-24 18:34:13 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2016-09-24 18:34:13 +0200 |
commit | e2e1e8a43123de3c5594bad24af486b730e0b3c7 (patch) | |
tree | 9dd30e0e0f9167c299e67c0898b782cdf7e8201f /src/dotty/tools/dotc/typer/FrontEnd.scala | |
parent | 331e75be7e90817bc2931c3d00dd931b22c179f5 (diff) | |
download | dotty-e2e1e8a43123de3c5594bad24af486b730e0b3c7.tar.gz dotty-e2e1e8a43123de3c5594bad24af486b730e0b3c7.tar.bz2 dotty-e2e1e8a43123de3c5594bad24af486b730e0b3c7.zip |
Check that (most) positions are non-overlapping.
Check that children of a node have non-overlapping positions and that positions
of successive children are monotonically increasing.
This holds currently except for 3 exceptions:
- Trees coming from Java as the Java parser also does desugarings which copy trees.
- Functions coming from wildcard expressions
- Interpolated strings
We'll see whether we can do something about the latter two.
Diffstat (limited to 'src/dotty/tools/dotc/typer/FrontEnd.scala')
-rw-r--r-- | src/dotty/tools/dotc/typer/FrontEnd.scala | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/dotty/tools/dotc/typer/FrontEnd.scala b/src/dotty/tools/dotc/typer/FrontEnd.scala index e008430a7..4ce24b633 100644 --- a/src/dotty/tools/dotc/typer/FrontEnd.scala +++ b/src/dotty/tools/dotc/typer/FrontEnd.scala @@ -35,7 +35,8 @@ class FrontEnd extends Phase { else new Parser(unit.source).parse() val printer = if (ctx.settings.Xprint.value.contains("parser")) default else typr printer.println("parsed:\n" + unit.untpdTree.show) - if (Config.checkPositions) unit.untpdTree.checkPos(complete = true) + if (Config.checkPositions) + unit.untpdTree.checkPos(nonOverlapping = !unit.isJava && !ctx.reporter.hasErrors) } def enterSyms(implicit ctx: Context) = monitor("indexing") { |