finally removes 'echo ' gotcha

This commit is contained in:
Andreas Rumpf 2016-01-15 11:34:52 +01:00
commit 46f1f41cc9
3 changed files with 19 additions and 8 deletions

View file

@ -250,12 +250,14 @@ proc isUnary(p: TParser): bool =
if p.tok.tokType in {tkOpr, tkDotDot} and if p.tok.tokType in {tkOpr, tkDotDot} and
p.tok.strongSpaceB == 0 and p.tok.strongSpaceB == 0 and
p.tok.strongSpaceA > 0: p.tok.strongSpaceA > 0:
# XXX change this after 0.10.4 is out
if p.strongSpaces:
result = true result = true
else: # versions prior to 0.13.0 used to do this:
parMessage(p, warnDeprecated, when false:
"will be parsed as unary operator; inconsistent spacing") if p.strongSpaces:
result = true
else:
parMessage(p, warnDeprecated,
"will be parsed as unary operator; inconsistent spacing")
proc checkBinary(p: TParser) {.inline.} = proc checkBinary(p: TParser) {.inline.} =
## Check if the current parser token is a binary operator. ## Check if the current parser token is a binary operator.

View file

@ -64,6 +64,14 @@ Precedence level Operators First charact
================ =============================================== ================== =============== ================ =============================================== ================== ===============
Whether an operator is used a prefix operator is also affected by preceeding whitespace (this parsing change was introduced with version 0.13.0):
.. code-block:: nim
echo $foo
# is parsed as
echo($foo)
Strong spaces Strong spaces
------------- -------------

View file

@ -2,8 +2,10 @@ essential for 1.0
================= =================
- introduce newSeqOfCap(10) - introduce newSeqOfCap(10)
- The remaining bugs of the lambda lifting pass that is responsible to enable - annotation support for getType()
closures and closure iterators need to be fixed. - overloading of `()` needs to be in .experimental
- do notation needs to be documented properly
- ``concept`` needs to be refined, a nice name for the feature is not enough. - ``concept`` needs to be refined, a nice name for the feature is not enough.
- Destructors need to be refined. - Destructors need to be refined.
- make '--implicitStatic:on' the default; then we can also clean up the - make '--implicitStatic:on' the default; then we can also clean up the
@ -12,7 +14,6 @@ essential for 1.0
- add "all threads are blocked" detection to 'spawn' - add "all threads are blocked" detection to 'spawn'
- Deprecate ``immediate`` for templates and macros - Deprecate ``immediate`` for templates and macros
- document NimMain and check whether it works for threading - document NimMain and check whether it works for threading
- remove echo $foo gotcha
- ``not`` or ``~`` for the effects system - ``not`` or ``~`` for the effects system