summaryrefslogtreecommitdiff
path: root/src/plugins/cpptools/cppcompletion_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/cpptools/cppcompletion_test.cpp')
-rw-r--r--src/plugins/cpptools/cppcompletion_test.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp
index 33c84f8df4..bf6bfb4679 100644
--- a/src/plugins/cpptools/cppcompletion_test.cpp
+++ b/src/plugins/cpptools/cppcompletion_test.cpp
@@ -2553,6 +2553,48 @@ void CppToolsPlugin::test_completion_data()
) << _("list.begin()->") << (QStringList()
<< QLatin1String("Foo")
<< QLatin1String("bar"));
+
+ QTest::newRow("dereference_of_nested_type_opertor_*_and_auto") << _(
+ "template<typename T>\n"
+ "struct QList\n"
+ "{\n"
+ " struct iterator\n"
+ " {\n"
+ " T &operator*() { return t; }\n"
+ " T t;\n"
+ " };\n"
+ " iterator begin() { return iterator(); }\n"
+ "};\n"
+ "struct Foo { int bar; };\n"
+ "void fun() {\n"
+ " QList<Foo> list;\n"
+ " auto a = list.begin();\n"
+ " @\n"
+ "}\n"
+ ) << _("(*a).") << (QStringList()
+ << QLatin1String("Foo")
+ << QLatin1String("bar"));
+
+ QTest::newRow("dereference_of_nested_type_opertor_->_and_auto") << _(
+ "template<typename T>\n"
+ "struct QList\n"
+ "{\n"
+ " struct iterator\n"
+ " {\n"
+ " T *operator->() { return &t; }\n"
+ " T t;\n"
+ " };\n"
+ " iterator begin() { return iterator(); }\n"
+ "};\n"
+ "struct Foo { int bar; };\n"
+ "void fun() {\n"
+ " QList<Foo> list;\n"
+ " auto a = list.begin();\n"
+ " @\n"
+ "}\n"
+ ) << _("a->") << (QStringList()
+ << QLatin1String("Foo")
+ << QLatin1String("bar"));
}
void CppToolsPlugin::test_completion_member_access_operator()