MCPcopy
hub / github.com/uber-go/nilaway / mergeSlices

Function mergeSlices

assertion/function/assertiontree/rich_check_effect.go:793–822  ·  view source on GitHub ↗
(useDeepEquality bool, left []RichCheckEffect, rights ...[]RichCheckEffect)

Source from the content-addressed store, hash-verified

791}
792
793func mergeSlices(useDeepEquality bool, left []RichCheckEffect, rights ...[]RichCheckEffect) []RichCheckEffect {
794 var eq func(first, second RichCheckEffect) bool
795 if useDeepEquality {
796 eq = func(first, second RichCheckEffect) bool {
797 return first.equals(second)
798 }
799 } else {
800 eq = func(first, second RichCheckEffect) bool {
801 return first == second
802 }
803 }
804 var out []RichCheckEffect
805 addToOut := func(effect RichCheckEffect) {
806 for _, outEffect := range out {
807 if eq(outEffect, effect) {
808 return
809 }
810 }
811 out = append(out, effect)
812 }
813 for _, l := range left {
814 addToOut(l)
815 }
816 for _, right := range rights {
817 for _, r := range right {
818 addToOut(r)
819 }
820 }
821 return out
822}

Callers 1

propagateRichChecksFunction · 0.85

Calls 1

equalsMethod · 0.65

Tested by

no test coverage detected