Differentiate between empty and nil input
Previously, CopyOf on an empty list was returning nil. With the updates to SortedUniqueStrings and FirstUniqueStrings, we need to differentiate between empty lists and nil. Test: m nothing Change-Id: I91063ebbe5013cbda5d8f70efde4683c66581599
This commit is contained in:
parent
8a8714c781
commit
cc4da76511
2 changed files with 13 additions and 1 deletions
|
@ -26,7 +26,11 @@ import (
|
||||||
|
|
||||||
// CopyOf returns a new slice that has the same contents as s.
|
// CopyOf returns a new slice that has the same contents as s.
|
||||||
func CopyOf(s []string) []string {
|
func CopyOf(s []string) []string {
|
||||||
return append([]string(nil), s...)
|
// If the input is nil, return nil and not an empty list
|
||||||
|
if s == nil {
|
||||||
|
return s
|
||||||
|
}
|
||||||
|
return append([]string{}, s...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Concat returns a new slice concatenated from the two input slices. It does not change the input
|
// Concat returns a new slice concatenated from the two input slices. It does not change the input
|
||||||
|
|
|
@ -381,6 +381,14 @@ func TestRemoveFromList(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestCopyOfEmptyAndNil(t *testing.T) {
|
||||||
|
emptyList := []string{}
|
||||||
|
copyOfEmptyList := CopyOf(emptyList)
|
||||||
|
AssertBoolEquals(t, "Copy of an empty list should be an empty list and not nil", true, copyOfEmptyList != nil)
|
||||||
|
copyOfNilList := CopyOf(nil)
|
||||||
|
AssertBoolEquals(t, "Copy of a nil list should be a nil list and not an empty list", true, copyOfNilList == nil)
|
||||||
|
}
|
||||||
|
|
||||||
func ExampleCopyOf() {
|
func ExampleCopyOf() {
|
||||||
a := []string{"1", "2", "3"}
|
a := []string{"1", "2", "3"}
|
||||||
b := CopyOf(a)
|
b := CopyOf(a)
|
||||||
|
|
Loading…
Reference in a new issue