diff --git a/mlir/unittests/IR/AttributeTest.cpp b/mlir/unittests/IR/AttributeTest.cpp --- a/mlir/unittests/IR/AttributeTest.cpp +++ b/mlir/unittests/IR/AttributeTest.cpp @@ -432,13 +432,15 @@ BoolAttr trueAttr = builder.getBoolAttr(true); BoolAttr falseAttr = builder.getBoolAttr(false); - ArrayAttr boolArrayAttr = builder.getArrayAttr({trueAttr, falseAttr}); + ArrayAttr boolArrayAttr = + builder.getArrayAttr({trueAttr, falseAttr, trueAttr}); StringAttr strAttr = builder.getStringAttr("array"); DictionaryAttr dictAttr = builder.getDictionaryAttr(builder.getNamedAttr(strAttr, boolArrayAttr)); SmallVector subAttrs; dictAttr.walk([&](Attribute attr) { subAttrs.push_back(attr); }); + // Note that trueAttr appears only once, identical subattributes are skipped. EXPECT_EQ(llvm::ArrayRef(subAttrs), ArrayRef( {strAttr, trueAttr, falseAttr, boolArrayAttr, dictAttr}));