diff --git a/src/libs/cplusplus/LookupContext.cpp b/src/libs/cplusplus/LookupContext.cpp index b80ca122bdf553ba896745c76ac9e35531bf79fb..05f5900edc33e31a89d89e5fd12eb9a96a9f1a1b 100644 --- a/src/libs/cplusplus/LookupContext.cpp +++ b/src/libs/cplusplus/LookupContext.cpp @@ -1268,7 +1268,6 @@ void ClassOrNamespace::NestedClassInstantiator::instantiate(ClassOrNamespace *en } } - nestedClassOrNamespaceInstantiation->_parent = enclosingTemplateClassInstantiation; instantiate(nestedClassOrNamespace, nestedClassOrNamespaceInstantiation); enclosingTemplateClassInstantiation->_classOrNamespaces[nestedName] = diff --git a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp index d3947b478c9114675f39376bfe303b1e3d604f03..fd369efce90d142b96dd1f46072c2932841b6646 100644 --- a/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp +++ b/src/plugins/cppeditor/followsymbol_switchmethoddecldef_test.cpp @@ -901,6 +901,17 @@ void CppEditorPlugin::test_FollowSymbolUnderCursor_data() " void foo();\n" "};\n" ); + + QTest::newRow("infiniteLoopLocalTypedef_QTCREATORBUG-11999") << _( + "template<class MyTree>\n" + "class TreeConstIterator\n" + "{\n" + " typedef TreeConstIterator<MyTree> MyIter;\n" + " void f() { return this->@$g(); }\n" + "};\n" + "\n" + "void h() { typedef TreeConstIterator<MyBase> const_iterator; }\n" + ); } void CppEditorPlugin::test_FollowSymbolUnderCursor() diff --git a/src/plugins/cpptools/cppcompletion_test.cpp b/src/plugins/cpptools/cppcompletion_test.cpp index 2b729b254f0b6ab73f0db7d3bd91ea7faade404d..8679d3120a1d9d677c963da95f48f01c34464c93 100644 --- a/src/plugins/cpptools/cppcompletion_test.cpp +++ b/src/plugins/cpptools/cppcompletion_test.cpp @@ -304,6 +304,8 @@ void CppToolsPlugin::test_completion() expectedCompletions.sort(); QEXPECT_FAIL("enum_in_function_in_struct_in_function", "doesn't work", Abort); + QEXPECT_FAIL("nested_class_in_template_class_QTCREATORBUG-11752", + "related to infiniteLoopLocalTypedef_QTCREATORBUG-11999", Abort); QCOMPARE(actualCompletions, expectedCompletions); }