getIteratorTypesArray should be used instead. It's a better substitute for all the current usages of the interface.
The current ArrayAttr iterator_types() has a few problems:
- It creates an assumption operation has iterators types as an attribute, but it's not always the case. Sometime iterator types can be inferred from other attribute, or they're just static.
- ArrayAttr is an obscure contained and required extracting values in the client code.
- Makes it hard to migrate iterator types from strings to enums (RFC).
Concrete ops, like linalg.generic will still have iterator types as an attribute if needed.
As a side effect, this change helps a bit with migration to prefixed accessors.