Library findCanonicalLibraryFor(Element e)

Tries to find a top level library that references this element.

Source

Library findCanonicalLibraryFor(Element e) {
  assert(allLibrariesAdded);
  Element searchElement = e;
  if (e is PropertyAccessorElement) {
    searchElement = e.variable;
  }

  if (_canonicalLibraryFor.containsKey(e)) {
    return _canonicalLibraryFor[e];
  }
  _canonicalLibraryFor[e] = null;
  for (Library library in libraries) {
    if (library.modelElementsMap.containsKey(searchElement)) {
      for (ModelElement modelElement
          in library.modelElementsMap[searchElement]) {
        if (modelElement.isCanonical) {
          _canonicalLibraryFor[e] = library;
          break;
        }
      }
    }
  }
  return _canonicalLibraryFor[e];
}