After #1910, any handling of non-canonical layouts ("level 1") will become dead code, uncoverable, because we won't be able to make those non-canonical layouts anymore. (Good!) So this issue is asking to clean them up, replacing complex implementations with simple ones.
After #1910, any handling of non-canonical layouts ("level 1") will become dead code, uncoverable, because we won't be able to make those non-canonical layouts anymore. (Good!) So this issue is asking to clean them up, replacing complex implementations with simple ones.
For example,
is_none
does this:https://github.com/scikit-hep/awkward/blob/3edac9b342ea13d4ede6ff9f541da60aee72bb2b/src/awkward/operations/ak_is_none.py#L33-L59
when all you need (for canonical layouts) is this:
https://github.com/scikit-hep/awkward/blob/500e0dd06fa4aa542ac0226da24851fb730e5042/src/awkward/operations/structure.py#L2857-L2875
It was implemented because of PR #1249, which is issue #1193, which was motivated by this layout:
which is non-canonical and not allowed.