summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2013-09-18 07:48:57 -0700
committerPaul Phillips <paulp@improving.org>2013-09-18 12:11:05 -0700
commit1c8bbd7ec5b8859f75abfbc4e70482dede2b7007 (patch)
treebc0daf08322afb83c9e55c0e7b31c758625fb8cc /src
parent7f3a7a4e39642f03f3fc32467c14ea718036cf6c (diff)
downloadscala-1c8bbd7ec5b8859f75abfbc4e70482dede2b7007.tar.gz
scala-1c8bbd7ec5b8859f75abfbc4e70482dede2b7007.tar.bz2
scala-1c8bbd7ec5b8859f75abfbc4e70482dede2b7007.zip
Position#show prints the point.
Can't ensure range position points are meaningful when we never see them. To limit noise, only print the point when it != start. [x:y] // point=x, start=x, end=y [p/x:y] // point=p, start=x, end=y I'm open to a different syntax. Also prints NoPosition as [X] rather than [NoPosition] because noise is for construction workers and attenders of rock concerts. Some range position and parser tests are included so we can see the checkfile change when the forthcoming fix happens (either an error message improvement or a positional one.)
Diffstat (limited to 'src')
-rw-r--r--src/reflect/scala/reflect/internal/util/Position.scala5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/reflect/scala/reflect/internal/util/Position.scala b/src/reflect/scala/reflect/internal/util/Position.scala
index 8e7df28167..d62ab40a9d 100644
--- a/src/reflect/scala/reflect/internal/util/Position.scala
+++ b/src/reflect/scala/reflect/internal/util/Position.scala
@@ -197,10 +197,11 @@ private[util] trait InternalPositionImpl {
}
def showDebug: String = toString
def show = (
- if (isOpaqueRange) s"[$start:$end]"
+ if (isOpaqueRange && start != point) s"[$point/$start:$end]"
+ else if (isOpaqueRange) s"[$start:$end]"
else if (isTransparent) s"<$start:$end>"
else if (isDefined) s"[$point]"
- else "[NoPosition]"
+ else "[X]"
)
private def asOffset(point: Int): Position = Position.offset(source, point)