// references. This prevents unmanaged files from being deleted if
// this item were to be deleted. When files that are no longer in use
// are automatically marked as temporary (now disabled by default),
// it is not safe to reference a permanent file without usage. Adding
// a usage and then later on removing it again would delete the file,
// but it is unknown if and where it is currently referenced. However,
// when files are not marked temporary (and then removed)
// automatically, it is safe to add and remove usages, as it would
// simply return to the current state.
// @see https://www.drupal.org/node/2891902
if ($file->
isPermanent() && \Drupal::
config('file.settings'
)->
get('make_unused_managed_files_temporary'
)) { $references =
static::
fileUsage()->
listUsage($file);
if (empty($references)) { // We expect the field name placeholder value to be wrapped in t()
// here, so it won't be escaped again as it's already marked safe.
$form_state->
setError($element,
t('The file used in the @name field may not be referenced.',
['@name' =>
$element['#title'
]]));
} } } else { // We expect the field name placeholder value to be wrapped in t()
// here, so it won't be escaped again as it's already marked safe.
$form_state->
setError($element,
t('The file referenced by the @name field does not exist.',
['@name' =>
$element['#title'
]]));
}