@@ -8111,16 +8111,40 @@ class TestSymbolDatabase : public TestFixture {
81118111 }
81128112
81138113 void valueType3 () {
8114- GET_SYMBOL_DB (" void f(std::vector<std::unordered_map<int, std::unordered_set<int>>>& v, int i, int j) {\n "
8115- " auto& s = v[i][j];\n "
8116- " s.insert(0);\n "
8117- " }\n " );
8118- ASSERT_EQUALS (" " , errout.str ());
8114+ {
8115+ GET_SYMBOL_DB (" void f(std::vector<std::unordered_map<int, std::unordered_set<int>>>& v, int i, int j) {\n "
8116+ " auto& s = v[i][j];\n "
8117+ " s.insert(0);\n "
8118+ " }\n " );
8119+ ASSERT_EQUALS (" " , errout.str ());
81198120
8120- const Token* tok = tokenizer.tokens ();
8121- tok = Token::findsimplematch (tok, " s ." );
8122- ASSERT (tok && tok->valueType ());
8123- ASSERT_EQUALS (" container(std :: set|unordered_set <)" , tok->valueType ()->str ());
8121+ const Token* tok = tokenizer.tokens ();
8122+ tok = Token::findsimplematch (tok, " s ." );
8123+ ASSERT (tok && tok->valueType ());
8124+ ASSERT_EQUALS (" container(std :: set|unordered_set <)" , tok->valueType ()->str ());
8125+ }
8126+ {
8127+ GET_SYMBOL_DB (" void f(std::vector<int> v) {\n "
8128+ " auto it = std::find(v.begin(), v.end(), 0);\n "
8129+ " }\n " );
8130+ ASSERT_EQUALS (" " , errout.str ());
8131+
8132+ const Token* tok = tokenizer.tokens ();
8133+ tok = Token::findsimplematch (tok, " auto" );
8134+ ASSERT (tok && tok->valueType ());
8135+ ASSERT_EQUALS (" iterator(std :: vector <)" , tok->valueType ()->str ());
8136+ }
8137+ {
8138+ GET_SYMBOL_DB (" void f(std::vector<int>::iterator beg, std::vector<int>::iterator end) {\n "
8139+ " auto it = std::find(beg, end, 0);\n "
8140+ " }\n " );
8141+ ASSERT_EQUALS (" " , errout.str ());
8142+
8143+ const Token* tok = tokenizer.tokens ();
8144+ tok = Token::findsimplematch (tok, " auto" );
8145+ ASSERT (tok && tok->valueType ());
8146+ ASSERT_EQUALS (" iterator(std :: vector <)" , tok->valueType ()->str ());
8147+ }
81248148 }
81258149
81268150 void valueTypeThis () {
0 commit comments