@@ -665,11 +665,10 @@ static void compilePrecedence3(Token *&tok, AST_state& state)
665665 tok = tok->link ()->next ();
666666 if (Token::Match (tok->link (), " ) ::| %type%" ))
667667 tok = tok->link ()->next ();
668- else if (Token::Match (tok, " ( %type%" ) && Token::Match (tok->link (), " ) [();,]" )) {
668+ else if (Token::Match (tok, " ( %type%" ) && Token::Match (tok->link (), " ) [();,[ ]" )) {
669669 tok = tok->next ();
670670 innertype = true ;
671- }
672- else if (Token::Match (tok, " ( &| %var%" ) && Token::simpleMatch (tok->link (), " ) (" )) {
671+ } else if (Token::Match (tok, " ( &| %var%" ) && Token::simpleMatch (tok->link (), " ) (" )) {
673672 tok = tok->next ();
674673 innertype = true ;
675674 }
@@ -686,6 +685,10 @@ static void compilePrecedence3(Token *&tok, AST_state& state)
686685 compileBinOp (tok, state, compilePrecedence2);
687686 } else if (tok->str () == " [" || tok->str () == " (" )
688687 compilePrecedence2 (tok, state);
688+ else if (innertype && Token::simpleMatch (tok, " ) [" )) {
689+ tok = tok->next ();
690+ compilePrecedence2 (tok, state);
691+ }
689692 compileUnaryOp (newtok, state, nullptr );
690693 if (innertype && Token::simpleMatch (tok, " ) ," ))
691694 tok = tok->next ();
0 commit comments