From 0149cc4a7756c0995053a950a4c239de19a12447 Mon Sep 17 00:00:00 2001 From: Kelly Schultz Date: Fri, 1 Sep 2023 13:35:29 -0400 Subject: [PATCH 1/2] Correctly set previous and next nodes when appending --- src/mutable_list.jl | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/mutable_list.jl b/src/mutable_list.jl index 3a650d071..c38e7f3ee 100644 --- a/src/mutable_list.jl +++ b/src/mutable_list.jl @@ -153,7 +153,13 @@ end function Base.append!(l1::MutableLinkedList{T}, l2::MutableLinkedList{T}) where T l1.node.prev.next = l2.node.next # l1's last's next is now l2's first l2.node.prev.next = l1.node # l2's last's next is now l1.node + l2.node.next.prev = l1.node.prev # l2's first's prev is now l1's last + l1.node.prev = l2.node.prev # l1's first's prev is now l2's last l1.len += length(l2) + # make l2 empty + l2.node.prev = l2.node + l2.node.next = l2.node + l2.len = 0 return l1 end From 610f34d744c662734be85fd8c0958fc4ae492168 Mon Sep 17 00:00:00 2001 From: Kelly Schultz Date: Fri, 1 Sep 2023 14:07:37 -0400 Subject: [PATCH 2/2] Add test for checking that append! takes elements from second arg --- test/test_mutable_list.jl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/test_mutable_list.jl b/test/test_mutable_list.jl index 36fb50fe5..c900b7b0f 100644 --- a/test/test_mutable_list.jl +++ b/test/test_mutable_list.jl @@ -97,7 +97,8 @@ @testset "append" begin l2 = MutableLinkedList{Int}(n+1:2n...) append!(l, l2) - @test l == MutableLinkedList{Int}(1:2n...) + @test l == MutableLinkedList{Int}(1:2n...) + @test l2 == MutableLinkedList{Int}() @test collect(l) == collect(MutableLinkedList{Int}(1:2n...)) l3 = MutableLinkedList{Int}(1:n...) append!(l3, n+1:2n...)