forked from qt-creator/qt-creator
C++: fix built-in code model to work with shared_ptr on MSVC 2017
These changes target Find Usages feature to work with shared_ptr. Improve libs/3rdparty/cplusplus and plugins/cplusplus: parse __declspec() attribute, call to variadic function template without specified template arguments, if constexpr, c++11 attributes [[value]], function templates with default parameters, resolve order for function vs template with default parameter, template operator->() with default arguments, template specialization with numeric values, find best partial specialization, fix partial specialization for non-first specialized argument Fixes: QTCREATORBUG-7866 Fixes: QTCREATORBUG-20781 Fixes: QTCREATORBUG-22857 Fixes: QTCREATORBUG-17825 Change-Id: I31a080f7729edfb2ee9650f1aff48daeba5a673b Reviewed-by: Christian Kandeler <christian.kandeler@qt.io> Reviewed-by: Nikolai Kosjar <pinaceae.pinus@gmail.com>
This commit is contained in:
11
src/libs/3rdparty/cplusplus/Lexer.cpp
vendored
11
src/libs/3rdparty/cplusplus/Lexer.cpp
vendored
@@ -1052,10 +1052,17 @@ void Lexer::scanIdentifier(Token *tok, unsigned extraProcessedChars)
|
||||
yyinp();
|
||||
}
|
||||
int yylen = _currentChar - yytext;
|
||||
if (f._scanKeywords)
|
||||
if (f._scanKeywords) {
|
||||
tok->f.kind = classify(yytext, yylen, _languageFeatures);
|
||||
else
|
||||
|
||||
if (tok->f.kind == T_FALSE || tok->f.kind == T_TRUE) {
|
||||
if (control()) {
|
||||
tok->number = control()->numericLiteral(yytext, yylen);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
tok->f.kind = T_IDENTIFIER;
|
||||
}
|
||||
|
||||
if (tok->f.kind == T_IDENTIFIER) {
|
||||
tok->f.kind = classifyOperator(yytext, yylen);
|
||||
|
||||
Reference in New Issue
Block a user