warnOnElement method

void warnOnElement(
  1. Warnable? warnable,
  2. PackageWarning kind, {
  3. String? message,
  4. Iterable<Locatable> referredFrom = const [],
  5. Iterable<String> extendedDebug = const [],
})

Implementation

void warnOnElement(Warnable? warnable, PackageWarning kind,
    {String? message,
    Iterable<Locatable> referredFrom = const [],
    Iterable<String> extendedDebug = const []}) {
  var newEntry = (warnable?.element, kind, message);
  if (_warnAlreadySeen.contains(newEntry)) {
    return;
  }
  // Warnings can cause other warnings.  Queue them up via the stack but don't
  // allow warnings we're already working on to get in there.
  _warnAlreadySeen.add(newEntry);
  _warnOnElement(warnable, kind,
      message: message ?? '',
      referredFrom: referredFrom,
      extendedDebug: extendedDebug);
  _warnAlreadySeen.remove(newEntry);
}