spanForElement function

SourceSpan spanForElement(
  1. Element element
)

Returns a source span that spans the location where element is defined.

Implementation

SourceSpan spanForElement(Element element) {
  final Asset src = element.library.src;
  final String source = src.readAsStringSync();
  final SourceFile file = SourceFile.fromString(source, url: src.uri);
  if (element.nameOffset < 0) {
    if (element is FieldElement) {
      if (element.getter != null) {
        return spanForElement(element.getter!);
      }

      if (element.setter != null) {
        return spanForElement(element.setter!);
      }
    }
  }

  final int nameOffset = element.nameOffset;
  return file.span(nameOffset, nameOffset + element.nameLength);
}