Skip to content

Commit 0896919

Browse files
committed
fixup
1 parent 9915083 commit 0896919

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

lib/pure/sugar.nim

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ proc splitDefinition*(def: NimNode): tuple[lhs: NimNode, rhs: NimNode, exported:
373373
let def2 = def[0]
374374
case def2.kind
375375
of nnkInfix:
376-
doAssert $def2[0].ident == "*="
376+
doAssert def2[0].strVal == "*="
377377
result.lhs = def2[1]
378378
result.rhs = def2[2]
379379
result.exported = true
@@ -394,19 +394,25 @@ macro byRef*(def: untyped): untyped =
394394
doAssert type(x1) is int and x == @[1,12,3]
395395

396396
let (name, exp, exported) = splitDefinition(def)
397-
result = quote do:
398-
let myAddr = addr `exp`
399-
template `name`: untyped = myAddr[]
400397
if exported:
401-
result.add quote do: export `name`
398+
result = quote do:
399+
let myAddr = addr `exp`
400+
template `name`*: untyped = myAddr[]
401+
else:
402+
result = quote do:
403+
let myAddr = addr `exp`
404+
template `name`: untyped = myAddr[]
402405

403406
macro byPtr*(def: untyped): untyped =
404407
## Same as `byRef` but uses uses `unsafeAddr` instead of `addr`; `byRef` is
405408
## safer and should be preferred when possible.
406409
## This can for example be used on `let` variables.
407410
let (name, exp, exported) = splitDefinition(def)
408-
result = quote do:
409-
let myAddr = unsafeAddr `exp`
410-
template `name`: untyped = myAddr[]
411411
if exported:
412-
result.add quote do: export `name`
412+
result = quote do:
413+
let myAddr = unsafeAddr `exp`
414+
template `name`*: untyped = myAddr[]
415+
else:
416+
result = quote do:
417+
let myAddr = unsafeAddr `exp`
418+
template `name`: untyped = myAddr[]

0 commit comments

Comments
 (0)