Remove support for named procs with sugar.=> (#17220)

* Add docs & tests for named procs with sugar.=>
* Remove support for named procs in sugar.=>
* Resolve conflict
* Fix test
This commit is contained in:
konsumlamm
2021-03-05 12:08:03 +01:00
committed by GitHub
parent 8f1fa3e5b0
commit 2e8325a19c
3 changed files with 5 additions and 18 deletions

View File

@@ -194,6 +194,9 @@ provided by the operating system.
- `system.addEscapedChar` now renders `\r` as `\r` instead of `\c`, to be compatible
with most other languages.
- Removed support for named procs in `sugar.=>`
## Language changes
- `nimscript` now handles `except Exception as e`.

View File

@@ -87,16 +87,6 @@ macro `=>`*(p, b: untyped): untyped =
checkPragma(p, pragma) # check again after -> transform
since (1, 3):
if p.kind in {nnkCall, nnkObjConstr}:
# foo(x, y) => x + y
kind = nnkProcDef
name = p[0]
let newP = newNimNode(nnkPar)
for i in 1..<p.len:
newP.add(p[i])
p = newP
case p.kind
of nnkPar, nnkTupleConstr:
var untypedBeforeColon = 0

View File

@@ -5,8 +5,6 @@ calling mystuff
yes
calling mystuff
yes
calling sugarWithPragma
sugarWithPragma called
'''
"""
@@ -40,7 +38,7 @@ proc pass2(f: (int, int) -> int): (int) -> int =
doAssert pass2((x, y) => x + y)(4) == 6
fun(x, y: int) {.noSideEffect.} => x + y
const fun = (x, y: int) {.noSideEffect.} => x + y
doAssert typeof(fun) is (proc (x, y: int): int {.nimcall.})
doAssert fun(3, 4) == 7
@@ -70,9 +68,7 @@ m:
proc mystuff() =
echo "yes"
sugarWithPragma() {.m.} => echo "sugarWithPragma called"
typedParamAndPragma(x, y: int) {.used.} -> int => x + y
const typedParamAndPragma = (x, y: int) -> int => x + y
doAssert typedParamAndPragma(1, 2) == 3
type
@@ -82,5 +78,3 @@ type
var myBot = Bot()
myBot.call = () {.noSideEffect.} => "I'm a bot."
doAssert myBot.call() == "I'm a bot."