Making ops c10-full: optional lists (#49088)
Summary:
Pull Request resolved: https://github.com/pytorch/pytorch/pull/49088
We had special case logic to support `int[]?` and `double[]?` but nothing for `DimnameList[]?`.
This PR generalizes the logic to support optional lists so it should now work with all types.
It also enables c10-fullness for ops that were blocked by this.
Note that using these arguments in a signature was always and still is expensive because the whole list needs to be copied.
We should probably consider alternatives in the future like for example using `torch::List` instead of `ArrayRef`, that could work without copying the list.
ghstack-source-id: 118660071
Test Plan: waitforsandcastle
Reviewed By: ezyang
Differential Revision: D25423901
fbshipit-source-id: dec58dc29f3bb4cbd89e2b95c42da204a9da2e0a