finally removes 'echo ' gotcha
This commit is contained in:
parent
9429e0f064
commit
46f1f41cc9
3 changed files with 19 additions and 8 deletions
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
|
|
|
||||||
7
todo.txt
7
todo.txt
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue