From 43075f5fb165e764f11abd35c4cc06cbda969a20 Mon Sep 17 00:00:00 2001 From: Dmitry Ashkadov Date: Thu, 13 Nov 2014 22:18:53 +0300 Subject: 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 Reviewed-by: Orgad Shaneh --- src/libs/3rdparty/cplusplus/Symbols.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/libs/3rdparty/cplusplus/Symbols.h') diff --git a/src/libs/3rdparty/cplusplus/Symbols.h b/src/libs/3rdparty/cplusplus/Symbols.h index 826c816b69..a545644cfa 100644 --- a/src/libs/3rdparty/cplusplus/Symbols.h +++ b/src/libs/3rdparty/cplusplus/Symbols.h @@ -298,6 +298,12 @@ public: InvokableMethod }; + enum RefQualifier { + NoRefQualifier, // a function declared w/o & and && => *this may be lvalue or rvalue + LvalueRefQualifier, // a function declared with & => *this is lvalue + RvalueRefQualifier // a function declared with && => *this is rvalue + }; + public: Function(TranslationUnit *translationUnit, unsigned sourceLocation, const Name *name); Function(Clone *clone, Subst *subst, Function *original); @@ -344,6 +350,9 @@ public: bool isPureVirtual() const; void setPureVirtual(bool isPureVirtual); + RefQualifier refQualifier() const; + void setRefQualifier(RefQualifier refQualifier); + bool isSignatureEqualTo(const Function *other, Matcher *matcher = 0) const; bool isAmbiguous() const; // internal @@ -384,6 +393,7 @@ private: unsigned _isVolatile: 1; unsigned _isAmbiguous: 1; unsigned _methodKey: 3; + unsigned _refQualifier: 2; }; union { unsigned _flags; -- cgit v1.2.1