summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcompletion_test.cpp
diff options
context:
space:
mode:
authorNikolai Kosjar <nikolai.kosjar@digia.com>2013-10-18 10:25:52 +0200
committerNikolai Kosjar <nikolai.kosjar@digia.com>2013-10-18 14:07:00 +0200
commite58906a9ed718b0e65a0f805c165e7bacf54d936 (patch)
tree7b90dd84042d7452020cf8f7433b4c758f264f6e /src/plugins/cpptools/cppcompletion_test.cpp
parentc4c9b90b7f32b6b04026079ba5953bcf9730f562 (diff)
downloadqt-creator-e58906a9ed718b0e65a0f805c165e7bacf54d936.tar.gz
C++: Limit typedef resolving depth
This reverts commit 5be56c0 except for its tests. While it fixed the problem described in the bug report, it also introduced regressions. For now, we use a hard limit. Change-Id: I19a85be454e3d7969371707e3eb1c3d42a16ecee Reviewed-by: Przemyslaw Gorszkowski <pgorszkowski@gmail.com> Reviewed-by: Erik Verbruggen <erik.verbruggen@digia.com>
Diffstat (limited to 'src/plugins/cpptools/cppcompletion_test.cpp')
-rw-r--r--src/plugins/cpptools/cppcompletion_test.cpp98
1 files changed, 49 insertions, 49 deletions
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp
index 856f96d004..3eed35b507 100644
--- a/src/plugins/cpptools/cppcompletion_test.cpp
+++ b/src/plugins/cpptools/cppcompletion_test.cpp
@@ -2070,6 +2070,55 @@ void CppToolsPlugin::test_completion_recursive_using_typedef_declarations()
QCOMPARE(completions.size(), 0);
}
+void CppToolsPlugin::test_completion_recursive_typedefs_in_templates1()
+{
+ const QByteArray source =
+ "template<typename From>\n"
+ "struct simplify_type {\n"
+ " typedef From SimpleType;\n"
+ "};\n"
+ "\n"
+ "template<class To, class From>\n"
+ "struct cast_retty {\n"
+ " typedef typename cast_retty_wrap<To, From,\n"
+ " typename simplify_type<From>::SimpleType>::ret_type ret_type;\n"
+ "};\n"
+ "\n"
+ "template<class To, class From, class SimpleFrom>\n"
+ "struct cast_retty_wrap {\n"
+ " typedef typename cast_retty<To, SimpleFrom>::ret_type ret_type;\n"
+ "};\n"
+ "\n"
+ "void f()\n"
+ "{\n"
+ " @;\n"
+ "}\n"
+ ;
+ CompletionTestCase test(source, "cast_retty<T1, T2>::ret_type.");
+
+ const QStringList completions = test.getCompletions();
+ QCOMPARE(completions.size(), 0);
+}
+
+void CppToolsPlugin::test_completion_recursive_typedefs_in_templates2()
+{
+ const QByteArray source =
+ "template<class T>\n"
+ "struct recursive {\n"
+ " typedef typename recursive<T>::ret_type ret_type;\n"
+ "};\n"
+ "\n"
+ "void f()\n"
+ "{\n"
+ " @;\n"
+ "}\n"
+ ;
+ CompletionTestCase test(source, "recursive<T1>::ret_type.foo");
+
+ const QStringList completions = test.getCompletions();
+ QCOMPARE(completions.size(), 0);
+}
+
void CppToolsPlugin::test_completion_prefix_first_QTCREATORBUG_8737()
{
const QByteArray source =
@@ -2740,55 +2789,6 @@ void CppToolsPlugin::test_completion_template_parameter_defined_inside_scope_of_
QVERIFY(completions.contains(QLatin1String("bar")));
}
-void CppToolsPlugin::test_completion_recursive_typedefs_in_templates1()
-{
- const QByteArray source =
- "template<typename From>\n"
- "struct simplify_type {\n"
- " typedef From SimpleType;\n"
- "};\n"
- "\n"
- "template<class To, class From>\n"
- "struct cast_retty {\n"
- " typedef typename cast_retty_wrap<To, From,\n"
- " typename simplify_type<From>::SimpleType>::ret_type ret_type;\n"
- "};\n"
- "\n"
- "template<class To, class From, class SimpleFrom>\n"
- "struct cast_retty_wrap {\n"
- " typedef typename cast_retty<To, SimpleFrom>::ret_type ret_type;\n"
- "};\n"
- "\n"
- "void f()\n"
- "{\n"
- " @;\n"
- "}\n"
- ;
- CompletionTestCase test(source, "cast_retty<T1, T2>::ret_type.");
-
- const QStringList completions = test.getCompletions();
- QCOMPARE(completions.size(), 0);
-}
-
-void CppToolsPlugin::test_completion_recursive_typedefs_in_templates2()
-{
- const QByteArray source =
- "template<class T>\n"
- "struct recursive {\n"
- " typedef typename recursive<To>::ret_type ret_type;\n"
- "};\n"
- "\n"
- "void f()\n"
- "{\n"
- " @;\n"
- "}\n"
- ;
- CompletionTestCase test(source, "recursive<T1>::ret_type.foo");
-
- const QStringList completions = test.getCompletions();
- QCOMPARE(completions.size(), 0);
-}
-
void CppToolsPlugin::test_completion_signals_hide_QPrivateSignal()
{
const QByteArray source =