@@ -94,17 +94,19 @@ LogicalResult OperationOp::verifyRegions() {
9494 valueNames.emplace_back (kind, std::move (nameSet));
9595 };
9696
97- getBody ().walk ([&](Operation *op ) {
98- TypeSwitch<Operation *>(op)
97+ for (Operation &op : getBody ().getOps () ) {
98+ TypeSwitch<Operation *>(& op)
9999 .Case <OperandsOp>(
100100 [&](OperandsOp op) { insertNames (" operands" , op.getNames ()); })
101101 .Case <ResultsOp>(
102102 [&](ResultsOp op) { insertNames (" results" , op.getNames ()); })
103103 .Case <RegionsOp>(
104104 [&](RegionsOp op) { insertNames (" regions" , op.getNames ()); });
105- });
105+ }
106106
107107 // Verify that no two operand, result or region share the same name.
108+ // The absence of duplicates within each value kind is checked by the
109+ // associated operation's verifier.
108110 for (size_t i : llvm::seq (valueNames.size ())) {
109111 for (size_t j : llvm::seq (i + 1 , valueNames.size ())) {
110112 auto [lhs, lhsSet] = valueNames[i];
@@ -131,22 +133,22 @@ static LogicalResult verifyNames(Operation *op, StringRef kindName,
131133 DenseMap<StringRef, size_t > nameMap;
132134 for (auto [i, name] : llvm::enumerate (names)) {
133135 StringRef nameRef = llvm::cast<StringAttr>(name).getValue ();
134- if (nameRef.size () == 0 )
136+ if (nameRef.empty () )
135137 return op->emitOpError ()
136- << " name of " << kindName << " number " << i << " is empty" ;
138+ << " name of " << kindName << " # " << i << " is empty" ;
137139 if (!llvm::isAlpha (nameRef[0 ]) && nameRef[0 ] != ' _' )
138140 return op->emitOpError ()
139- << " name of " << kindName << " number " << i
141+ << " name of " << kindName << " # " << i
140142 << " must start with either a letter or an underscore" ;
141143 if (llvm::any_of (nameRef,
142144 [](char c) { return !llvm::isAlnum (c) && c != ' _' ; }))
143145 return op->emitOpError ()
144- << " name of " << kindName << " number " << i
146+ << " name of " << kindName << " # " << i
145147 << " must contain only letters, digits and underscores" ;
146148 if (nameMap.contains (nameRef))
147- return op->emitOpError () << " name of " << kindName << " number " << i
149+ return op->emitOpError () << " name of " << kindName << " # " << i
148150 << " is a duplicate of the name of " << kindName
149- << " number " << nameMap[nameRef];
151+ << " # " << nameMap[nameRef];
150152 nameMap.insert ({nameRef, i});
151153 }
152154
0 commit comments