Parameter indices in some attributes (argument_with_type_tag,
pointer_with_type_tag, nonnull, ownership_takes, ownership_holds, and
ownership_returns) are specified in source as one-origin including any
this parameter, are stored as zero-origin excluding any this
parameter, and were erroneously printing (-ast-print) as the stored
values. This patch fixes those cases by printing re-incremented
An alternative solution is to store only the original values, but that
requires modifying all users. I tried that for nonnull and found that
it required repeating index adjustment logic in many places while this
patch encapsulates that logic in relatively few places.
Another alternative is to store both sets of values, but that would be
This patch also fixes argument_with_type_tag and pointer_with_type_tag
not to print their fake IsPointer arguments.