From 217b18417d740658ef0e29938205c190581eddc9 Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Tue, 4 Mar 2025 17:03:39 +0100 Subject: [PATCH] CppEditor: Convert AssignToLocalVariableTest to out-of-line approach Change-Id: Id31271f4c2cc0b5c783ef44f9ac4b387b2568ff8 Reviewed-by: Christian Stenger --- src/plugins/cppeditor/cppeditor.qrc | 29 ++ .../quickfixes/assigntolocalvariable.cpp | 258 +----------------- .../QTCREATORBUG-10355-2/description.txt | 1 + .../QTCREATORBUG-10355-2/expected_file.cpp | 6 + .../QTCREATORBUG-10355-2/original_file.cpp | 6 + .../QTCREATORBUG-10355/description.txt | 1 + .../QTCREATORBUG-10355/expected_file.cpp | 6 + .../QTCREATORBUG-10355/original_file.cpp | 6 + .../free-function/expected_file.cpp | 2 + .../free-function/original_file.cpp | 2 + .../member-function/expected_file.cpp | 5 + .../member-function/original_file.cpp | 5 + .../new-expression/expected_file.cpp | 4 + .../new-expression/original_file.cpp | 4 + .../original_file.cpp | 3 + .../no-function-in-function/original_file.cpp | 5 + .../no-initialization-list/original_file.cpp | 6 + .../no-return1/original_file.cpp | 4 + .../no-return2/original_file.cpp | 4 + .../no-return3/original_file.cpp | 4 + .../no-return4/original_file.cpp | 3 + .../no-return5/original_file.cpp | 6 + .../no-void-function/original_file.cpp | 2 + .../no-void-member-function/original_file.cpp | 5 + .../original_file.cpp | 4 + .../static-member-function/expected_file.cpp | 4 + .../static-member-function/original_file.cpp | 4 + .../templates/expected_file.cpp | 5 + .../templates/expected_file.h | 5 + .../templates/original_file.cpp | 5 + .../templates/original_file.h | 5 + 31 files changed, 153 insertions(+), 256 deletions(-) create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/description.txt create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/expected_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/description.txt create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/expected_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/free-function/expected_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/free-function/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/member-function/expected_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/member-function/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/new-expression/expected_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/new-expression/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-function-in-expression/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-function-in-function/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-initialization-list/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return1/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return2/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return3/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return4/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return5/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-void-function/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-void-member-function/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-void-static-member-function/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/static-member-function/expected_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/static-member-function/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/expected_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/expected_file.h create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/original_file.cpp create mode 100644 src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/original_file.h diff --git a/src/plugins/cppeditor/cppeditor.qrc b/src/plugins/cppeditor/cppeditor.qrc index 31e223d2c3e..bbd85581f44 100644 --- a/src/plugins/cppeditor/cppeditor.qrc +++ b/src/plugins/cppeditor/cppeditor.qrc @@ -135,5 +135,34 @@ testcases/MoveDeclarationOutOfIfTest/if-else/original_file.cpp testcases/MoveDeclarationOutOfIfTest/if-else-if/expected_file.cpp testcases/MoveDeclarationOutOfIfTest/if-else-if/original_file.cpp + testcases/AssignToLocalVariableTest/free-function/expected_file.cpp + testcases/AssignToLocalVariableTest/free-function/original_file.cpp + testcases/AssignToLocalVariableTest/member-function/expected_file.cpp + testcases/AssignToLocalVariableTest/member-function/original_file.cpp + testcases/AssignToLocalVariableTest/new-expression/expected_file.cpp + testcases/AssignToLocalVariableTest/new-expression/original_file.cpp + testcases/AssignToLocalVariableTest/no-function-in-expression/original_file.cpp + testcases/AssignToLocalVariableTest/no-function-in-function/original_file.cpp + testcases/AssignToLocalVariableTest/no-initialization-list/original_file.cpp + testcases/AssignToLocalVariableTest/no-return1/original_file.cpp + testcases/AssignToLocalVariableTest/no-return2/original_file.cpp + testcases/AssignToLocalVariableTest/no-return3/original_file.cpp + testcases/AssignToLocalVariableTest/no-return4/original_file.cpp + testcases/AssignToLocalVariableTest/no-return5/original_file.cpp + testcases/AssignToLocalVariableTest/no-void-function/original_file.cpp + testcases/AssignToLocalVariableTest/no-void-member-function/original_file.cpp + testcases/AssignToLocalVariableTest/no-void-static-member-function/original_file.cpp + testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/description.txt + testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/expected_file.cpp + testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/original_file.cpp + testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/description.txt + testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/expected_file.cpp + testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/original_file.cpp + testcases/AssignToLocalVariableTest/static-member-function/expected_file.cpp + testcases/AssignToLocalVariableTest/static-member-function/original_file.cpp + testcases/AssignToLocalVariableTest/templates/expected_file.cpp + testcases/AssignToLocalVariableTest/templates/expected_file.h + testcases/AssignToLocalVariableTest/templates/original_file.cpp + testcases/AssignToLocalVariableTest/templates/original_file.h diff --git a/src/plugins/cppeditor/quickfixes/assigntolocalvariable.cpp b/src/plugins/cppeditor/quickfixes/assigntolocalvariable.cpp index c3bc3e85daf..c96392d83a9 100644 --- a/src/plugins/cppeditor/quickfixes/assigntolocalvariable.cpp +++ b/src/plugins/cppeditor/quickfixes/assigntolocalvariable.cpp @@ -129,10 +129,6 @@ public: setClangdReplacement({20}); } -#ifdef WITH_TESTS - static QObject *createTest(); -#endif - private: void doMatch(const CppQuickFixInterface &interface, QuickFixOperations &result) override { @@ -254,262 +250,12 @@ private: } }; -#ifdef WITH_TESTS -using namespace Tests; - -class AssignToLocalVariableTest : public QObject -{ - Q_OBJECT - -private slots: - void testTemplates() - { - QList testDocuments; - QByteArray original; - QByteArray expected; - - // Header File - original = - "template \n" - "class List {\n" - "public:\n" - " T first();" - "};\n" - ; - expected = original; - testDocuments << CppTestDocument::create("file.h", original, expected); - - // Source File - original = - "#include \"file.h\"\n" - "void foo() {\n" - " List list;\n" - " li@st.first();\n" - "}\n"; - expected = - "#include \"file.h\"\n" - "void foo() {\n" - " List list;\n" - " auto localFirst = list.first();\n" - "}\n"; - testDocuments << CppTestDocument::create("file.cpp", original, expected); - - AssignToLocalVariable factory; - QuickFixOperationTest(testDocuments, &factory); - } - - void test_data() - { - QTest::addColumn("original"); - QTest::addColumn("expected"); - - // Check: Add local variable for a free function. - QTest::newRow("freeFunction") - << QByteArray( - "int foo() {return 1;}\n" - "void bar() {fo@o();}\n") - << QByteArray( - "int foo() {return 1;}\n" - "void bar() {auto localFoo = foo();}\n"); - - // Check: Add local variable for a member function. - QTest::newRow("memberFunction") - << QByteArray( - "class Foo {public: int* fooFunc();}\n" - "void bar() {\n" - " Foo *f = new Foo;\n" - " @f->fooFunc();\n" - "}\n") - << QByteArray( - "class Foo {public: int* fooFunc();}\n" - "void bar() {\n" - " Foo *f = new Foo;\n" - " auto localFooFunc = f->fooFunc();\n" - "}\n"); - - // Check: Add local variable for a member function, cursor in the middle (QTCREATORBUG-10355) - QTest::newRow("memberFunction2ndGrade1") - << QByteArray( - "struct Foo {int* func();};\n" - "struct Baz {Foo* foo();};\n" - "void bar() {\n" - " Baz *b = new Baz;\n" - " b->foo@()->func();\n" - "}") - << QByteArray( - "struct Foo {int* func();};\n" - "struct Baz {Foo* foo();};\n" - "void bar() {\n" - " Baz *b = new Baz;\n" - " auto localFunc = b->foo()->func();\n" - "}"); - - // Check: Add local variable for a member function, cursor on function call (QTCREATORBUG-10355) - QTest::newRow("memberFunction2ndGrade2") - << QByteArray( - "struct Foo {int* func();};\n" - "struct Baz {Foo* foo();};\n" - "void bar() {\n" - " Baz *b = new Baz;\n" - " b->foo()->f@unc();\n" - "}") - << QByteArray( - "struct Foo {int* func();};\n" - "struct Baz {Foo* foo();};\n" - "void bar() {\n" - " Baz *b = new Baz;\n" - " auto localFunc = b->foo()->func();\n" - "}"); - - // Check: Add local variable for a static member function. - QTest::newRow("staticMemberFunction") - << QByteArray( - "class Foo {public: static int* fooFunc();}\n" - "void bar() {\n" - " Foo::fooF@unc();\n" - "}") - << QByteArray( - "class Foo {public: static int* fooFunc();}\n" - "void bar() {\n" - " auto localFooFunc = Foo::fooFunc();\n" - "}"); - - // Check: Add local variable for a new Expression. - QTest::newRow("newExpression") - << QByteArray( - "class Foo {}\n" - "void bar() {\n" - " new Fo@o;\n" - "}") - << QByteArray( - "class Foo {}\n" - "void bar() {\n" - " auto localFoo = new Foo;\n" - "}"); - - // Check: No trigger for function inside member initialization list. - QTest::newRow("noInitializationList") - << QByteArray( - "class Foo\n" - "{\n" - " public: Foo : m_i(fooF@unc()) {}\n" - " int fooFunc() {return 2;}\n" - " int m_i;\n" - "};\n") - << QByteArray(); - - // Check: No trigger for void functions. - QTest::newRow("noVoidFunction") - << QByteArray( - "void foo() {}\n" - "void bar() {fo@o();}") - << QByteArray(); - - // Check: No trigger for void member functions. - QTest::newRow("noVoidMemberFunction") - << QByteArray( - "class Foo {public: void fooFunc();}\n" - "void bar() {\n" - " Foo *f = new Foo;\n" - " @f->fooFunc();\n" - "}") - << QByteArray(); - - // Check: No trigger for void static member functions. - QTest::newRow("noVoidStaticMemberFunction") - << QByteArray( - "class Foo {public: static void fooFunc();}\n" - "void bar() {\n" - " Foo::fo@oFunc();\n" - "}") - << QByteArray(); - - // Check: No trigger for functions in expressions. - QTest::newRow("noFunctionInExpression") - << QByteArray( - "int foo(int a) {return a;}\n" - "int bar() {return 1;}" - "void baz() {foo(@bar() + bar());}") - << QByteArray(); - - // Check: No trigger for functions in functions. (QTCREATORBUG-9510) - QTest::newRow("noFunctionInFunction") - << QByteArray( - "int foo(int a, int b) {return a + b;}\n" - "int bar(int a) {return a;}\n" - "void baz() {\n" - " int a = foo(ba@r(), bar());\n" - "}\n") - << QByteArray(); - - // Check: No trigger for functions in return statements (classes). - QTest::newRow("noReturnClass1") - << QByteArray( - "class Foo {public: static void fooFunc();}\n" - "Foo* bar() {\n" - " return new Fo@o;\n" - "}") - << QByteArray(); - - // Check: No trigger for functions in return statements (classes). (QTCREATORBUG-9525) - QTest::newRow("noReturnClass2") - << QByteArray( - "class Foo {public: int fooFunc();}\n" - "int bar() {\n" - " return (new Fo@o)->fooFunc();\n" - "}") - << QByteArray(); - - // Check: No trigger for functions in return statements (functions). - QTest::newRow("noReturnFunc1") - << QByteArray( - "class Foo {public: int fooFunc();}\n" - "int bar() {\n" - " return Foo::fooFu@nc();\n" - "}") - << QByteArray(); - - // Check: No trigger for functions in return statements (functions). (QTCREATORBUG-9525) - QTest::newRow("noReturnFunc2") - << QByteArray( - "int bar() {\n" - " return list.firs@t().foo;\n" - "}\n") - << QByteArray(); - - // Check: No trigger for functions which does not match in signature. - QTest::newRow("noSignatureMatch") - << QByteArray( - "int someFunc(int);\n" - "\n" - "void f()\n" - "{\n" - " some@Func();\n" - "}") - << QByteArray(); - } - - void test() - { - QFETCH(QByteArray, original); - QFETCH(QByteArray, expected); - AssignToLocalVariable factory; - QuickFixOperationTest(singleDocument(original, expected), &factory); - } -}; - -QObject *AssignToLocalVariable::createTest() { return new AssignToLocalVariableTest; } - -#endif // WITH_TESTS } // namespace void registerAssignToLocalVariableQuickfix() { - CppQuickFixFactory::registerFactory(); + CppQuickFixFactory::registerFactoryWithStandardTest( + "AssignToLocalVariableTest"); } } // namespace CppEditor::Internal - -#ifdef WITH_TESTS -#include -#endif diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/description.txt b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/description.txt new file mode 100644 index 00000000000..847aac5b03c --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/description.txt @@ -0,0 +1 @@ +Add local variable for a member function, cursor on function call (QTCREATORBUG-10355) diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/expected_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/expected_file.cpp new file mode 100644 index 00000000000..fe41813daf4 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/expected_file.cpp @@ -0,0 +1,6 @@ +struct Foo {int* func();}; +struct Baz {Foo* foo();}; +void bar() { + Baz *b = new Baz; + auto localFunc = b->foo()->func(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/original_file.cpp new file mode 100644 index 00000000000..68c9b7a0033 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355-2/original_file.cpp @@ -0,0 +1,6 @@ +struct Foo {int* func();}; +struct Baz {Foo* foo();}; +void bar() { + Baz *b = new Baz; + b->foo()->f@unc(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/description.txt b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/description.txt new file mode 100644 index 00000000000..c3142544aa3 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/description.txt @@ -0,0 +1 @@ +Add local variable for a member function, cursor in the middle (QTCREATORBUG-10355) diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/expected_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/expected_file.cpp new file mode 100644 index 00000000000..fe41813daf4 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/expected_file.cpp @@ -0,0 +1,6 @@ +struct Foo {int* func();}; +struct Baz {Foo* foo();}; +void bar() { + Baz *b = new Baz; + auto localFunc = b->foo()->func(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/original_file.cpp new file mode 100644 index 00000000000..6ec0cdb925a --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/QTCREATORBUG-10355/original_file.cpp @@ -0,0 +1,6 @@ +struct Foo {int* func();}; +struct Baz {Foo* foo();}; +void bar() { + Baz *b = new Baz; + b->foo@()->func(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/free-function/expected_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/free-function/expected_file.cpp new file mode 100644 index 00000000000..01e037c563c --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/free-function/expected_file.cpp @@ -0,0 +1,2 @@ +int foo() {return 1;} +void bar() {auto localFoo = foo();} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/free-function/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/free-function/original_file.cpp new file mode 100644 index 00000000000..024f9aa4cd7 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/free-function/original_file.cpp @@ -0,0 +1,2 @@ +int foo() {return 1;} +void bar() {fo@o();} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/member-function/expected_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/member-function/expected_file.cpp new file mode 100644 index 00000000000..390640c6343 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/member-function/expected_file.cpp @@ -0,0 +1,5 @@ +class Foo {public: int* fooFunc();} +void bar() { + Foo *f = new Foo; + auto localFooFunc = f->fooFunc(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/member-function/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/member-function/original_file.cpp new file mode 100644 index 00000000000..d3f50b3cd1b --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/member-function/original_file.cpp @@ -0,0 +1,5 @@ +class Foo {public: int* fooFunc();} +void bar() { + Foo *f = new Foo; + @f->fooFunc(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/new-expression/expected_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/new-expression/expected_file.cpp new file mode 100644 index 00000000000..aa58547d106 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/new-expression/expected_file.cpp @@ -0,0 +1,4 @@ +class Foo {} +void bar() { + auto localFoo = new Foo; +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/new-expression/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/new-expression/original_file.cpp new file mode 100644 index 00000000000..8a8a943135e --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/new-expression/original_file.cpp @@ -0,0 +1,4 @@ +class Foo {} +void bar() { + new Fo@o; +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-function-in-expression/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-function-in-expression/original_file.cpp new file mode 100644 index 00000000000..5bb1b026546 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-function-in-expression/original_file.cpp @@ -0,0 +1,3 @@ +int foo(int a) {return a;} +int bar() {return 1;} +void baz() {foo(@bar() + bar());} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-function-in-function/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-function-in-function/original_file.cpp new file mode 100644 index 00000000000..ba960df1823 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-function-in-function/original_file.cpp @@ -0,0 +1,5 @@ +int foo(int a, int b) {return a + b;} +int bar(int a) {return a;} +void baz() { + int a = foo(ba@r(), bar()); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-initialization-list/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-initialization-list/original_file.cpp new file mode 100644 index 00000000000..1a3999ee399 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-initialization-list/original_file.cpp @@ -0,0 +1,6 @@ +class Foo +{ +public: Foo : m_i(fooF@unc()) {} + int fooFunc() {return 2;} + int m_i; +}; diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return1/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return1/original_file.cpp new file mode 100644 index 00000000000..7c8ea4ea220 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return1/original_file.cpp @@ -0,0 +1,4 @@ +class Foo {public: static void fooFunc();} +Foo* bar() { + return new Fo@o; +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return2/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return2/original_file.cpp new file mode 100644 index 00000000000..bd08f30e054 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return2/original_file.cpp @@ -0,0 +1,4 @@ +class Foo {public: int fooFunc();} +int bar() { + return (new Fo@o)->fooFunc(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return3/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return3/original_file.cpp new file mode 100644 index 00000000000..c1b158b7196 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return3/original_file.cpp @@ -0,0 +1,4 @@ +class Foo {public: int fooFunc();} +int bar() { + return Foo::fooFu@nc(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return4/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return4/original_file.cpp new file mode 100644 index 00000000000..10db9418df0 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return4/original_file.cpp @@ -0,0 +1,3 @@ +int bar() { + return list.firs@t().foo; +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return5/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return5/original_file.cpp new file mode 100644 index 00000000000..94e36ff0824 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-return5/original_file.cpp @@ -0,0 +1,6 @@ +int someFunc(int); + +void f() +{ + some@Func(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-void-function/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-void-function/original_file.cpp new file mode 100644 index 00000000000..5a89b3845d4 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-void-function/original_file.cpp @@ -0,0 +1,2 @@ +void foo() {} +void bar() {fo@o();} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-void-member-function/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-void-member-function/original_file.cpp new file mode 100644 index 00000000000..44e48653d32 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-void-member-function/original_file.cpp @@ -0,0 +1,5 @@ +class Foo {public: void fooFunc();} +void bar() { + Foo *f = new Foo; + @f->fooFunc(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-void-static-member-function/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-void-static-member-function/original_file.cpp new file mode 100644 index 00000000000..b8e7acfc8cb --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/no-void-static-member-function/original_file.cpp @@ -0,0 +1,4 @@ +class Foo {public: static void fooFunc();} +void bar() { + Foo::fo@oFunc(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/static-member-function/expected_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/static-member-function/expected_file.cpp new file mode 100644 index 00000000000..729504eb098 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/static-member-function/expected_file.cpp @@ -0,0 +1,4 @@ +class Foo {public: static int* fooFunc();} +void bar() { + auto localFooFunc = Foo::fooFunc(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/static-member-function/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/static-member-function/original_file.cpp new file mode 100644 index 00000000000..35456edf248 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/static-member-function/original_file.cpp @@ -0,0 +1,4 @@ +class Foo {public: static int* fooFunc();} +void bar() { + Foo::fooF@unc(); +} diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/expected_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/expected_file.cpp new file mode 100644 index 00000000000..2be442238d9 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/expected_file.cpp @@ -0,0 +1,5 @@ +#include "file.h" +void foo() { + List list; + auto localFirst = list.first(); +}; diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/expected_file.h b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/expected_file.h new file mode 100644 index 00000000000..536137ba5bb --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/expected_file.h @@ -0,0 +1,5 @@ +template +class List { +public: + T first(); +}; diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/original_file.cpp b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/original_file.cpp new file mode 100644 index 00000000000..bf3b13b2f59 --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/original_file.cpp @@ -0,0 +1,5 @@ +#include "file.h" +void foo() { + List list; + li@st.first(); +}; diff --git a/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/original_file.h b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/original_file.h new file mode 100644 index 00000000000..536137ba5bb --- /dev/null +++ b/src/plugins/cppeditor/testcases/AssignToLocalVariableTest/templates/original_file.h @@ -0,0 +1,5 @@ +template +class List { +public: + T first(); +};