[mlir] Improve FieldParser list container detection
authorrkayaith <rkayaith@gmail.com>
Tue, 28 Mar 2023 23:00:40 +0000 (19:00 -0400)
committerRahul Kayaith <rkayaith@gmail.com>
Mon, 3 Apr 2023 19:12:59 +0000 (15:12 -0400)
commita71bc5f56d1f992bfd1de2f8e2279b6d5338c6db
treef84f756649342db51e67454bfaf75315a0c6eeec
parent2e1b838a889f9793d4bcd5dbfe10db9796b77143
[mlir] Improve FieldParser list container detection

The current detection logic will fail for containers with an overloaded
`push_back` member. This causes issues with types like `std::vector` and
`SmallVector<SomeNonTriviallyCopyableT>`, which have both
`push_back(const T&)` and `push_back(T&&)`.

Reviewed By: rriddle

Differential Revision: https://reviews.llvm.org/D147101
mlir/include/mlir/IR/DialectImplementation.h
mlir/test/lib/Dialect/Test/TestAttrDefs.td
mlir/test/lib/Dialect/Test/TestAttributes.cpp
mlir/test/mlir-tblgen/attr-or-type-format-roundtrip.mlir
mlir/test/mlir-tblgen/attr-or-type-format.mlir