diff options
author | Paul Phillips <paulp@improving.org> | 2013-09-18 07:48:57 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-09-18 12:11:05 -0700 |
commit | 1c8bbd7ec5b8859f75abfbc4e70482dede2b7007 (patch) | |
tree | bc0daf08322afb83c9e55c0e7b31c758625fb8cc /src | |
parent | 7f3a7a4e39642f03f3fc32467c14ea718036cf6c (diff) | |
download | scala-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.scala | 5 |
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) |