* revert #12217 since the root problem seems to have been fixed; fix #15974;fix #12551; fix #19464 * fix #16020; fix #16780 * fix tests and #16613 * fix #14553 * fix #19909; skip skipRegisterAddr * fix #18641
This commit is contained in:
parent
a65db5e2e9
commit
3cb2d7af05
4 changed files with 263 additions and 14 deletions
|
|
@ -1,6 +1,6 @@
|
|||
import macros
|
||||
|
||||
block t9043: # issue #9043
|
||||
block t9043: # bug #9043
|
||||
proc foo[N: static[int]](dims: array[N, int]): string =
|
||||
const N1 = N
|
||||
const N2 = dims.len
|
||||
|
|
@ -26,3 +26,51 @@ block t4952:
|
|||
let tree = newTree(nnkExprColonExpr)
|
||||
let t = (n: tree)
|
||||
doAssert: t.n.kind == tree.kind
|
||||
|
||||
|
||||
# bug #19909
|
||||
type
|
||||
SinglyLinkedList[T] = ref object
|
||||
SinglyLinkedListObj[T] = ref object
|
||||
|
||||
|
||||
proc addMoved[T](a, b: var SinglyLinkedList[T]) =
|
||||
if a.addr != b.addr: discard
|
||||
|
||||
proc addMoved[T](a, b: var SinglyLinkedListObj[T]) =
|
||||
if a.addr != b.addr: discard
|
||||
|
||||
proc main =
|
||||
var a: SinglyLinkedList[int]; new a
|
||||
var b: SinglyLinkedList[int]; new b
|
||||
a.addMoved b
|
||||
|
||||
var a0: SinglyLinkedListObj[int]
|
||||
var b0: SinglyLinkedListObj[int]
|
||||
a0.addMoved b0
|
||||
|
||||
static: main()
|
||||
|
||||
|
||||
# bug #18641
|
||||
|
||||
type A = object
|
||||
ha1: int
|
||||
static:
|
||||
var a = A()
|
||||
var a2 = a.addr
|
||||
a2.ha1 = 11
|
||||
doAssert a2.ha1 == 11
|
||||
a.ha1 = 12
|
||||
doAssert a.ha1 == 12
|
||||
doAssert a2.ha1 == 12 # ok
|
||||
static:
|
||||
proc fn() =
|
||||
var a = A()
|
||||
var a2 = a.addr
|
||||
a2.ha1 = 11
|
||||
doAssert a2.ha1 == 11
|
||||
a.ha1 = 12
|
||||
doAssert a.ha1 == 12
|
||||
doAssert a2.ha1 == 12 # fails
|
||||
fn()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue