parseUnit(import)
  skipErrorTokens(import)
  listener: beginCompilationUnit(import)
  syntheticPreviousToken(import)
  parseTopLevelDeclarationImpl(, Instance of 'DirectiveContext')
    parseMetadataStar()
      listener: beginMetadataStar(import)
      listener: endMetadataStar(0)
    parseTopLevelKeywordDeclaration(, import, null, Instance of 'DirectiveContext')
      parseImport(import)
        listener: beginUncategorizedTopLevelDeclaration(import)
        listener: beginImport(import)
        ensureLiteralString(import)
          parseLiteralString(import)
            parseSingleLiteralString(import)
              listener: beginLiteralString("Function.dart")
              listener: endLiteralString(0, as)
        parseConditionalUriStar("Function.dart")
          listener: beginConditionalUris(as)
          listener: endConditionalUris(0)
        parseImportPrefixOpt("Function.dart")
          ensureIdentifier(as, importPrefixDeclaration)
            reportRecoverableErrorWithToken(Function, Instance of 'Template<(Token) => Message>')
              listener: handleRecoverableError(Message[BuiltInIdentifierInDeclaration, Can't use 'Function' as a name here., null, {lexeme: Function}], Function, Function)
            listener: handleIdentifier(Function, importPrefixDeclaration)
          listener: handleImportPrefix(null, as)
        parseCombinatorStar(Function)
          listener: beginCombinators(;)
          listener: endCombinators(0)
        listener: endImport(import, null, ;)
  listener: endTopLevelDeclaration()
  reportAllErrorTokens(import)
  listener: endCompilationUnit(1, )
