From 5d3c0701741edb64aae3b7281e78cb3f9521a6fe Mon Sep 17 00:00:00 2001 From: Przemyslaw Gorszkowski Date: Tue, 25 Mar 2014 09:23:31 -0400 Subject: C++: Do not set binding block as instantiationOrigin The binding in a block should not be used as an instantiationOrigin, because it will be deleted if it does not contain any blocks or namespaces or classes or enums. Instead of that we should look for first enclosing class or namespace. Task-number: QTCREATORBUG-11424 Change-Id: I0fc6e935495478f71372b0fe6f611887f45b2eda Reviewed-by: Erik Verbruggen --- src/plugins/cpptools/cppcompletion_test.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/plugins/cpptools/cppcompletion_test.cpp') diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp index eb657f783b..742e0a99ee 100644 --- a/src/plugins/cpptools/cppcompletion_test.cpp +++ b/src/plugins/cpptools/cppcompletion_test.cpp @@ -2190,6 +2190,22 @@ void CppToolsPlugin::test_completion_data() "}\n" ) << _("mem") << (QStringList() << QLatin1String("member")); + + QTest::newRow("no_binding_block_as_instantiationOrigin_QTCREATORBUG-11424") << _( + "template \n" + "class QVector\n" + "{\n" + "public:\n" + " inline const_iterator constBegin() const;\n" + "};\n" + "\n" + "typedef struct { double value; } V;\n" + "\n" + "double getValue(const QVector& d) const {\n" + " typedef QVector::ConstIterator Iter;\n" + " double val = @\n" + "}\n" + ) << _("d.constBegin()->") << (QStringList()); } void CppToolsPlugin::test_completion_member_access_operator() -- cgit v1.2.1