Rules when box/unbox applies

Does your loop in iter_loop literally do nothing?

It does something useful in our real code, but best practices described in PSA Make it easier to help you suggest to strip examples down as much as possible. And the iter_loop body is not relevant for my question.

What it looks to me is that the first two versions of iter_loop are calling the signature
iter_loop(::FWFile, ::AsciiField)
and the third version is calling
iter_loop(::FWFile, ::String)

Well, yes and no. The 3rd option is calling iter_loop(::FWFile, ::String) which after resolving the String calls iter_loop(::FWFile, ::AbstractField). And like option 2, it should be able to specialise to iter_loop(::FWFile, ::AsciiField). Option 2 and 3 are only marginally different.

Also you should check out @btime from BenchmarkTools

Yes I did. How exactly does it help to answer my questions?