Skip to content

Commit 2f38d3d

Browse files
committed
CheckStl: Use ValueType
1 parent adab48a commit 2f38d3d

1 file changed

Lines changed: 2 additions & 16 deletions

File tree

lib/checkstl.cpp

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -91,22 +91,8 @@ bool CheckStl::isIterator(const Variable *var) const
9191
if (!var || !var->isLocal() || !Token::Match(var->typeEndToken(), "iterator|const_iterator|reverse_iterator|const_reverse_iterator|auto"))
9292
return false;
9393

94-
if (var->typeEndToken()->str() == "auto") {
95-
if (Token::Match(var->typeEndToken(), "auto %name% ; %name% = %var% . %name% ( )")) {
96-
const Token* containertok = var->typeEndToken()->tokAt(5);
97-
if (!containertok->variable())
98-
return false;
99-
100-
const Library::Container* container = _settings->library.detectContainer(containertok->variable()->typeStartToken());
101-
if (!container)
102-
return false;
103-
104-
Library::Container::Yield yield = container->getYield(containertok->strAt(2));
105-
if (yield != Library::Container::END_ITERATOR && yield != Library::Container::START_ITERATOR && yield != Library::Container::ITERATOR)
106-
return false;
107-
} else
108-
return false;
109-
}
94+
if (var->typeEndToken()->str() == "auto")
95+
return (var->nameToken()->valueType() && var->nameToken()->valueType()->type == ValueType::Type::ITERATOR);
11096

11197
if (var->type()) { // If it is defined, ensure that it is defined like an iterator
11298
// look for operator* and operator++

0 commit comments

Comments
 (0)