renamed new std/pragmas.nim to std/byaddr.nim (#13844)
* renamed new std/pragmas.nim to std/byaddr.nim * minor code cleanup
This commit is contained in:
parent
68539a2926
commit
d01245e501
3 changed files with 8 additions and 8 deletions
|
|
@ -1,9 +1,9 @@
|
|||
# see `semLowerLetVarCustomPragma` for compiler support that enables these
|
||||
# lowerings
|
||||
|
||||
template byaddr*(lhs, typ, expr) =
|
||||
template byaddr*(lhs, typ, ex) =
|
||||
## Allows a syntax for lvalue reference, exact analog to
|
||||
## `auto& a = expr;` in C++
|
||||
## `auto& a = ex;` in C++
|
||||
runnableExamples:
|
||||
var s = @[10,11,12]
|
||||
var a {.byaddr.} = s[0]
|
||||
|
|
@ -12,8 +12,8 @@ template byaddr*(lhs, typ, expr) =
|
|||
doAssert a is int
|
||||
var b {.byaddr.}: int = s[0]
|
||||
doAssert a.addr == b.addr
|
||||
when typ is type(nil):
|
||||
let tmp = addr(expr)
|
||||
when typ is typeof(nil):
|
||||
let tmp = addr(ex)
|
||||
else:
|
||||
let tmp: ptr typ = addr(expr)
|
||||
let tmp: ptr typ = addr(ex)
|
||||
template lhs: untyped = tmp[]
|
||||
Loading…
Add table
Add a link
Reference in a new issue