forked from qt-creator/qt-creator
C++: Add support of ref-qualifier for functions.
Now the ref-qualifier (& or &&) of the function declaration is propagated to GUI. For example, 'Refactor' -> 'Add Definition' preserves the ref-qualifier. Change-Id: I8ac4e1cad4e44985e94230aabbd9858a7e929fee Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io> Reviewed-by: Orgad Shaneh <orgads@gmail.com>
This commit is contained in:
committed by
Orgad Shaneh
parent
c0f3094866
commit
43075f5fb1
8
src/libs/3rdparty/cplusplus/Bind.cpp
vendored
8
src/libs/3rdparty/cplusplus/Bind.cpp
vendored
@@ -3255,6 +3255,14 @@ bool Bind::visit(FunctionDeclaratorAST *ast)
|
||||
fun->setOverride(type.isOverride());
|
||||
fun->setFinal(type.isFinal());
|
||||
|
||||
// propagate ref-qualifier
|
||||
if (ast->ref_qualifier_token) {
|
||||
const Kind kind = tokenAt(ast->ref_qualifier_token).kind();
|
||||
CPP_CHECK(kind == T_AMPER || kind == T_AMPER_AMPER); // & or && are only allowed
|
||||
fun->setRefQualifier(kind == T_AMPER ? Function::LvalueRefQualifier :
|
||||
Function::RvalueRefQualifier);
|
||||
}
|
||||
|
||||
this->exceptionSpecification(ast->exception_specification, type);
|
||||
if (ast->as_cpp_initializer != 0) {
|
||||
fun->setAmbiguous(true);
|
||||
|
||||
Reference in New Issue
Block a user