tree d63be23cdecefb736e3de24e275301f40080f813
parent 99af99c6657db0ad76bc348fe075c873a10da031
author Kazu Hirata <kazu@google.com> 1750519249 -0700
committer GitHub <noreply@github.com> 1750519249 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoVs3RCRC1aQ7uu5UhlAAAqB4QABf2Z+V2n6nKYUtZptAvkOqs
 hBldqDHlgs5Ric/5SsOzf1Ru7H6pKDYAlS2pNbdRCwLBECszBTx7NayrNDWmlPhK
 yuZGgNchJgUGI0WLQ1UYXGryC6gNHLRnx7rJSalOHgr5iDDsqb/uemXmq4bwQPFf
 1vjHllwHPhEwJH+m0baa0hbljlYbS3JFsBzPmeHZoWC7HcUD33k35tyOt6uFoV38
 dB4EbvgZqcaIpr92+uP/pM4U4jkO9zygUeyM37j62XN9WfAcnkFgXGRMIoIX95Kq
 QCs1triJ8Ir4a2gkPCk+p5M9W+NvcSaLjJsg0XBF2v4NoG58QSPAnZ2Gpq3sRnFN
 puuzoLj95gMYSRIx81Byl75ELJByWIG1wdUmzNBlQYVs8AyJWXBaHaRvByYZrcyn
 pmRak/EM866cO9NOjgcuTRAdsJgWSXA+YiE3cX+dl5V9Fi+gPJqEkRc4v4jj1gNg
 bwNx9itr4Cib41YR8/Nt/zUD7cPM627qkHbD5R7kr7/A0JCvnCScOggvUH1BaKh3
 3T8RZBOUOaOSgKIPnL1RVqr80qi0r43HS6WHJwmU5T7Ku/WYbnctgjBgYLKm06Oy
 gOW8a/3rjS71ib7JJ4oPyv4v/F9rlrR8uFA73Bbd38zJtDju41iu8hmXzbLlTC2O
 VdshXNVsk3A7wAYtuBuV
 =dCnB
 -----END PGP SIGNATURE-----
 

[mlir] Migrate away from ArrayRef(std::nullopt) (NFC) (#145140)

ArrayRef has a constructor that accepts std::nullopt.  This
constructor dates back to the days when we still had llvm::Optional.

Since the use of std::nullopt outside the context of std::optional is
kind of abuse and not intuitive to new comers, I would like to move
away from the constructor and eventually remove it.

This patch takes care of the mlir side of the migration, starting with
straightforward places like "return std::nullopt;" and ternally
expressions involving std::nullopt.