Problems reported:

parser/error_recovery/issue_42229_prime_2.crash:1:13: Expected a type, but got '>>'.
Stream<List<>> foo() {}
            ^^

beginCompilationUnit(Stream)
  beginMetadataStar(Stream)
  endMetadataStar(0)
  beginTopLevelMember(Stream)
    beginTopLevelMethod(, null)
      handleIdentifier(Stream, typeReference)
      beginTypeArguments(<)
        handleIdentifier(List, typeReference)
        beginTypeArguments(<)
          handleRecoverableError(Message[ExpectedType, Expected a type, but got '>>'., null, {lexeme: >>}], >>, >>)
          handleIdentifier(, typeReference)
          handleNoTypeArguments(>>)
          handleType(, null)
        endTypeArguments(1, <, >)
        handleType(List, null)
      endTypeArguments(1, <, >)
      handleType(Stream, null)
      handleIdentifier(foo, topLevelFunctionDeclaration)
      handleNoTypeVariables(()
      beginFormalParameters((, MemberKind.TopLevelMethod)
      endFormalParameters(0, (, ), MemberKind.TopLevelMethod)
      handleAsyncModifier(null, null)
      beginBlockFunctionBody({)
      endBlockFunctionBody(0, {, })
    endTopLevelMethod(Stream, null, })
  endTopLevelDeclaration()
endCompilationUnit(1, )
