docs: def _flush_signature(key, return_type):
      # type: (FunctionKey, InternalType) -> None
      """Store signature for a function.
  
      Assume that argument types have been stored previously to
      'collected_args'. As the 'return_type' argument provides the return
      type, we now have a complete signature.
  
      As a side effect, removes the argument types for the function from
      'collected_args'.
      """
      signatures = collected_signatures.setdefault(key, set())
      args_info = collected_args.pop(key)
      if len(signatures) < MAX_ITEMS_PER_FUNCTION:
          signatures.add((args_info, return_type))
      num_samples[key] = num_samples.get(key, 0) + 1