MCPcopy Create free account
hub / github.com/cppcheck-opensource/cppcheck / cpp11init

Method cpp11init

test/testtokenize.cpp:8591–8723  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8589 }
8590
8591 void cpp11init() {
8592 #define testIsCpp11init(...) testIsCpp11init_(__FILE__, __LINE__, __VA_ARGS__)
8593 auto testIsCpp11init_ = [this](const char* file, int line, const std::string& code, const char* find, Token::Cpp11init expected) {
8594 SimpleTokenizer tokenizer(settingsDefault, *this);
8595 ASSERT_LOC(tokenizer.tokenize(code.data(), code.size()), file, line);
8596
8597 const Token* tok = Token::findsimplematch(tokenizer.tokens(), find, strlen(find));
8598 ASSERT_LOC(tok, file, line);
8599 ASSERT_LOC(tok->isCpp11init() == expected, file, line);
8600 };
8601
8602 testIsCpp11init("class X : public A<int>, C::D {};",
8603 "D {",
8604 Token::Cpp11init::NOINIT);
8605
8606 testIsCpp11init("auto f() -> void {}",
8607 "void {",
8608 Token::Cpp11init::NOINIT);
8609 testIsCpp11init("auto f() & -> void {}",
8610 "void {",
8611 Token::Cpp11init::NOINIT);
8612 testIsCpp11init("auto f() const noexcept(false) -> void {}",
8613 "void {",
8614 Token::Cpp11init::NOINIT);
8615 testIsCpp11init("auto f() -> std::vector<int> { return {}; }",
8616 "{ return",
8617 Token::Cpp11init::NOINIT);
8618 testIsCpp11init("auto f() -> std::vector<int> { return {}; }",
8619 "vector",
8620 Token::Cpp11init::NOINIT);
8621 testIsCpp11init("auto f() -> std::vector<int> { return {}; }",
8622 "std ::",
8623 Token::Cpp11init::NOINIT);
8624
8625 testIsCpp11init("class X{};",
8626 "{ }",
8627 Token::Cpp11init::NOINIT);
8628 testIsCpp11init("class X{}", // forgotten ; so not properly recognized as a class
8629 "{ }",
8630 Token::Cpp11init::CPP11INIT);
8631
8632 testIsCpp11init("namespace abc::def { TEST(a, b) {} }",
8633 "{ TEST",
8634 Token::Cpp11init::NOINIT);
8635 testIsCpp11init("namespace { TEST(a, b) {} }", // anonymous namespace
8636 "{ TEST",
8637 Token::Cpp11init::NOINIT);
8638
8639 testIsCpp11init("enum { e = decltype(s)::i };",
8640 "{ e",
8641 Token::Cpp11init::NOINIT);
8642
8643 testIsCpp11init("template <typename T>\n" // #11378
8644 "class D<M<T, 1>> : public B<M<T, 1>, T> {\n"
8645 "public:\n"
8646 " D(int x) : B<M<T, 1>, T>(x) {}\n"
8647 "};\n",
8648 "{ public:",

Callers

nothing calls this directly

Calls 4

findsimplematchFunction · 0.85
tokenizeMethod · 0.80
dataMethod · 0.45
sizeMethod · 0.45

Tested by

no test coverage detected