forked from qt-creator/qt-creator
CppEditor: Fix GenerateGetterSetter for reference types
Change-Id: Iad332cf023c6bff0c7f5ae46fb56f0393c9c7b29 Reviewed-by: Orgad Shaneh <orgads@gmail.com> Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
committed by
Orgad Shaneh
parent
6e6d5b5309
commit
49c6710b42
@@ -771,6 +771,66 @@ void CppEditorPlugin::test_quickfix_data()
|
|||||||
"}\n"
|
"}\n"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// Checks: No special treatment for reference to non const.
|
||||||
|
QTest::newRow("GenerateGetterSetter_referenceToNonConst")
|
||||||
|
<< CppQuickFixFactoryPtr(new GenerateGetterSetter) << _(
|
||||||
|
"\n"
|
||||||
|
"class Something\n"
|
||||||
|
"{\n"
|
||||||
|
" int &it@;\n"
|
||||||
|
"};\n"
|
||||||
|
) << _(
|
||||||
|
"\n"
|
||||||
|
"class Something\n"
|
||||||
|
"{\n"
|
||||||
|
" int ⁢\n"
|
||||||
|
"\n"
|
||||||
|
"public:\n"
|
||||||
|
" int &getIt() const;\n"
|
||||||
|
" void setIt(const int &value);\n"
|
||||||
|
"};\n"
|
||||||
|
"\n"
|
||||||
|
"int &Something::getIt() const\n"
|
||||||
|
"{\n"
|
||||||
|
" return it;\n"
|
||||||
|
"}\n"
|
||||||
|
"\n"
|
||||||
|
"void Something::setIt(const int &value)\n"
|
||||||
|
"{\n"
|
||||||
|
" it = value;\n"
|
||||||
|
"}\n"
|
||||||
|
);
|
||||||
|
|
||||||
|
// Checks: No special treatment for reference to const.
|
||||||
|
QTest::newRow("GenerateGetterSetter_referenceToConst")
|
||||||
|
<< CppQuickFixFactoryPtr(new GenerateGetterSetter) << _(
|
||||||
|
"\n"
|
||||||
|
"class Something\n"
|
||||||
|
"{\n"
|
||||||
|
" const int &it@;\n"
|
||||||
|
"};\n"
|
||||||
|
) << _(
|
||||||
|
"\n"
|
||||||
|
"class Something\n"
|
||||||
|
"{\n"
|
||||||
|
" const int ⁢\n"
|
||||||
|
"\n"
|
||||||
|
"public:\n"
|
||||||
|
" const int &getIt() const;\n"
|
||||||
|
" void setIt(const int &value);\n"
|
||||||
|
"};\n"
|
||||||
|
"\n"
|
||||||
|
"const int &Something::getIt() const\n"
|
||||||
|
"{\n"
|
||||||
|
" return it;\n"
|
||||||
|
"}\n"
|
||||||
|
"\n"
|
||||||
|
"void Something::setIt(const int &value)\n"
|
||||||
|
"{\n"
|
||||||
|
" it = value;\n"
|
||||||
|
"}\n"
|
||||||
|
);
|
||||||
|
|
||||||
// Checks:
|
// Checks:
|
||||||
// 1. Setter: Setter is a static function.
|
// 1. Setter: Setter is a static function.
|
||||||
// 2. Getter: Getter is a static, non const function.
|
// 2. Getter: Getter is a static, non const function.
|
||||||
|
@@ -3018,10 +3018,12 @@ public:
|
|||||||
if (passByValue) {
|
if (passByValue) {
|
||||||
paramString = oo.prettyType(fullySpecifiedType, paramName);
|
paramString = oo.prettyType(fullySpecifiedType, paramName);
|
||||||
} else {
|
} else {
|
||||||
FullySpecifiedType constParamType(fullySpecifiedType);
|
const ReferenceType *refType = type->asReferenceType();
|
||||||
|
FullySpecifiedType constParamType(refType ? refType->elementType()
|
||||||
|
: fullySpecifiedType);
|
||||||
constParamType.setConst(true);
|
constParamType.setConst(true);
|
||||||
QScopedPointer<ReferenceType> referenceType(new ReferenceType(constParamType, false));
|
QScopedPointer<ReferenceType> referenceType(new ReferenceType(constParamType, false));
|
||||||
FullySpecifiedType referenceToConstParamType(referenceType.data());
|
const FullySpecifiedType referenceToConstParamType(referenceType.data());
|
||||||
paramString = oo.prettyType(referenceToConstParamType, paramName);
|
paramString = oo.prettyType(referenceToConstParamType, paramName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user