- Don't have isHidden() depend on isNeeded(). Whether a section is hidden is orthogonal from whether it is needed: hidden sections will never have a header regardless of whether they have a body. (I know we override this method with return false for synthetic sections, but regardless I think it's confusing to write it this way for non-synthetic sections.)
- Don't call writeTo() on unneeded sections. D78270 assumes that this is true when implementing the stub helper section.
- Filter out the unneeded sections early on to avoid having to deal with them in multiple places.
- Remove assumption in test that the referenced file has no other symbols. (We should create separate input files for future tests to avoid such issues.)
I personally find this more complicated to read :(
Knowing that hidden state isn't as simple as checking isHidden() -- isNeeded() is also needed -- seemed confusing to me :/