Skip to content

Dead / Faulty code in ArrayEach? #255

Description

@Bios-Marcel

Hey,

I've been trying to use ArrayEach to parse an array. The callback you can pass takes an error value as its argument and can't return one, meaning that even if you want to stop iterating, you can't. Additionally, the passed error can't be non-nil.

v, t, o, e := Get(data[offset:])

if e != nil {
	return offset, e
}

if o == 0 {
	break
}

if t != NotExist {
	cb(v, t, offset+o-len(v), e)
}

if e != nil {
	break
}

If the error is not nil, we'll run into return offset, e. Since e isn't being reassigned before or after the call to cb, as go does't allow this with type error (value type), the if e != nil { break } is dead code and err will always be nil inside of the callback.

What were the thoughts behind the API design of this function? If I don't understand it, I think comments would be really helpful, both inline and function docs.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions