diff --git a/src/plugins/cpptools/cppcodeformatter.cpp b/src/plugins/cpptools/cppcodeformatter.cpp index d63fc49f435..dc01741e841 100644 --- a/src/plugins/cpptools/cppcodeformatter.cpp +++ b/src/plugins/cpptools/cppcodeformatter.cpp @@ -169,6 +169,7 @@ void CodeFormatter::recalculateStateAfter(const QTextBlock &block) switch (kind) { case T_LESS: enter(template_param); break; case T_GREATER: leave(); break; + case T_GREATER_GREATER: leave(); leave(); break; // call leave twice to pop both template_param states } break; case operator_declaration: diff --git a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp index 8528d8e4339..03220c9bb8c 100644 --- a/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp +++ b/tests/auto/cplusplus/codeformatter/tst_codeformatter.cpp @@ -1177,6 +1177,8 @@ void tst_CodeFormatter::templates() << Line("~ class F, class D>,") << Line("~ typename F>") << Line("class Foo { };") + << Line("template >") + << Line("") ; checkIndent(data); }