Fix #19297 - fixing broken list after adding empty list (#19299)

* Update lists.nim

* Update tlists.nim

* removed check `if b.tail != nil`

The tail of the list being null it is still possible to retrieve its end by going through all nodes from the head. So checking for null from `b.tail` is unnecessary. However, setting `a.tail = b.tail` only if `a.head != nil`, so you don't break a good list with an already broken one.
This commit is contained in:
rockcavera 2021-12-30 17:52:48 -03:00 • committed by GitHub
commit dc5c88ca79
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 18 additions and 5 deletions

View file

@ -233,6 +233,18 @@ template main =
doAssert l.toSeq == [1]
doAssert l.remove(l.head) == true
doAssert l.toSeq == []
block issue19297: # add (appends a shallow copy)
var a: SinglyLinkedList[int]
var b: SinglyLinkedList[int]
doAssert a.toSeq == @[]
a.add(1)
doAssert a.toSeq == @[1]
a.add(b)
doAssert a.toSeq == @[1]
a.add(2)
doAssert a.toSeq == @[1, 2]
static: main()
main()