diff --git a/lib/tokenlist.cpp b/lib/tokenlist.cpp index 54bbb4bd1..b052e1812 100644 --- a/lib/tokenlist.cpp +++ b/lib/tokenlist.cpp @@ -557,7 +557,7 @@ static void compileScope(Token *&tok, AST_state& state) if (tok) compileTerm(tok, state); - if (binop->previous() && binop->previous()->isName()) + if (binop->previous() && (binop->previous()->isName() || (binop->previous()->link() && binop->strAt(-1) == ">"))) compileBinOp(binop, state, nullptr); else compileUnaryOp(binop, state, nullptr); diff --git a/test/testtokenize.cpp b/test/testtokenize.cpp index 68295950d..68ee2a015 100644 --- a/test/testtokenize.cpp +++ b/test/testtokenize.cpp @@ -8421,6 +8421,9 @@ private: ASSERT_EQUALS("name_bytes[bits~unusedBits>>unusedBits<<{=", testAst("const uint8_t name_bytes[] = { (~bits >> unusedBits) << unusedBits };")); ASSERT_EQUALS("abuf0{={=", testAst("a = { .buf = { 0 } };")); ASSERT_EQUALS("tset{=", testAst("struct cgroup_taskset tset = {};")); + + // template paratheses: <> + ASSERT_EQUALS("stdfabs::m_similarity(numeric_limitsepsilon::(<=return", testAst("return std::fabs(m_similarity) <= numeric_limits::epsilon();")); // #6195 } void astbrackets() const { // []