This repository has been archived on 2024-06-20. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
coffee.pygments/tests/examplefiles/cpp/functions.cpp
amitkummer adb90dc65f
CFamilyLexer: Fix matching of function parameters (#2210)
This fixes an issue where in code like this:

```
int foo(float bar) // hello() {}
```

The lexer would match `(float bar) // hello()`
as the parameters of the function `foo`, instead
of just `(float bar)`.

In addition, a similar test case to what was originally
reported in #2208 is added.
2022-08-18 15:15:40 +02:00

106 lines
3.9 KiB
C++

using std::numerical;
string contains(const char str);
string contains(const char str) {}
string* contains(const char str);
string* contains(const char str) {}
string * contains(const char str);
string * contains(const char str) {}
string * contains(const char str);
string * contains(const char str) {}
string *contains(const char str);
string *contains(const char str) {}
string **contains(const char str);
string **contains(const char str) {}
string** contains(const char str);
string** contains(const char str) {}
string ** contains(const char str);
string ** contains(const char str) {}
string & contains(const char str);
string & contains(const char str) {}
string& contains(const char str);
string& contains(const char str) {}
string &contains(const char str);
string &contains(const char str) {}
string &&contains(const char str);
string &&contains(const char str) {}
string && contains(const char str);
string && contains(const char str) {}
string&& contains(const char str);
string&& contains(const char str) {}
const string contains(const char str);
const string contains(const char str) {}
explicit const string contains(const char str);
explicit const string contains(const char str) {}
explicit const string contains(const char str) noexcept;
explicit const string contains(const char str) noexcept {}
explicit const string contains(const char str) noexcept const;
explicit const string contains(const char str) noexcept const {}
explicit const string contains(const char&str);
explicit const string contains(const char&str) {}
explicit const string contains(const char& str);
explicit const string contains(const char& str) {}
explicit const string contains(const char str);
explicit const string contains(const char str) {}
explicit const string contains(const char&& str);
explicit const string contains(const char&& str) {}
explicit const string contains(const char&& str);
explicit const string contains(const char&& str) {}
explicit const string contains(const char &&str);
explicit const string contains(const char &&str) {}
explicit const string contains(const char ***** str);
explicit const string contains(const char ***** str) {}
explicit const string contains(const char *****str);
explicit const string contains(const char *****str) {}
explicit const string contains(const char***** str);
explicit const string contains(const char***** str) {}
explicit const string contains(const char *str);
explicit const string contains(const char *str) {}
explicit const string contains(const char* str);
explicit const string contains(const char* str) {}
explicit const string contains(const char * str);
explicit const string contains(const char * str) {}
unsigned int contains() {}
unsigned int contains();
// Names with namespaces
string Type::contains(char c) const noexcept;
string Type::contains(char c) const noexcept {}
std::string contains(char c) const noexcept;
std::string contains(char c) const noexcept {}
std::string contains(std::vector<char> chars) const noexcept;
std::string contains(std::vector<char> chars) const noexcept {}
std::string std::vector::contains(std::vector<char> chars) const;
std::string std::vector::contains(std::vector<char> chars) const {}
const inline explicit std::string std::vector::contains(std::vector<char> chars) const {}
const inline explicit std::string std::vector::contains(std::vector<char> chars) const;
// inside classes
class raz {
const virtual std::string contains(const std::string str);
}
// Make sure these are not functions:
else if(flag && func_call()) {}
new T();
const operator int() const {} // so int is lexed as type and not function.name
class foo bar : public raz
{
Q_OBJECT
/// \cond INCLUDE_QPROPERTIES
Q_PROPERTY(arg1 arg2)
/// \endcond
public:
/*!
Lorem ipsum core vanditi.
*/
enum duck { dog, // Comment.
cat // Comment (see \ref replot).
};
};