Problems reported:

parser/error_recovery/issue_42229.crash:1:34: Expected an identifier, but got ''.
Stream<List<>> /* nothing here */
                                 ^...

WARNING: Reporting at eof --- see below for details.

parser/error_recovery/issue_42229.crash:1:13: Expected a type, but got '>>'.
Stream<List<>> /* nothing here */
            ^^

parser/error_recovery/issue_42229.crash:1:34: Expected an identifier, but got ''.
Stream<List<>> /* nothing here */
                                 ^...

WARNING: Reporting at eof --- see below for details.

parser/error_recovery/issue_42229.crash:1:14: Expected ';' after this.
Stream<List<>> /* nothing here */
             ^

beginCompilationUnit(Stream)
  beginMetadataStar(Stream)
  endMetadataStar(0)
  beginTopLevelMember(Stream)
    handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
    // WARNING: Reporting at eof for .
    beginFields(DeclarationKind.TopLevel, null, null, null, null, null, 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)
      handleRecoverableError(Message[ExpectedIdentifier, Expected an identifier, but got ''., Try inserting an identifier before ''., {lexeme: }], , )
      // WARNING: Reporting at eof for .
      handleIdentifier(, topLevelVariableDeclaration)
      handleNoFieldInitializer()
      handleRecoverableError(Message[ExpectedAfterButGot, Expected ';' after this., null, {string: ;}], >, >)
    endTopLevelFields(null, null, null, null, null, 1, Stream, ;)
  endTopLevelDeclaration()
endCompilationUnit(1, )
