String name

Source

@override
String get name {
  if (_name != null) return _name;

  // handle the case of an anonymous library
  if (element.name == null || element.name.isEmpty) {
    _name = _libraryElement.definingCompilationUnit.name;
    if (_name.endsWith('.dart')) {
      _name = _name.substring(0, _name.length - '.dart'.length);
    }
  } else {
    _name = element.name;
  }

  // So, if the library is a system library, it's name is not
  // dart:___, it's dart.___. Apparently the way to get to the dart:___
  // name is to get source.encoding.
  // This may be wrong or misleading, but developers expect the name
  // of dart:____
  var source = _libraryElement.definingCompilationUnit.source;
  _name = source.isInSystemLibrary ? source.encoding : _name;

  return _name;
}