span property

  1. @override
FileSpan? span
override

Implementation

@override
FileSpan? get span {
  var out = fragmentToken?.span;
  var nameSpan = nameToken?.span;
  var onSpan = onToken?.span;
  var conditionSpan = typeCondition.span;

  if (out == null) {
    return selectionSet.span;
  }
  if (nameSpan != null) {
    out = out.expand(nameSpan);
  }

  if (onSpan != null) {
    out = out.expand(onSpan);
  }

  if (conditionSpan != null) {
    out = out.expand(conditionSpan);
  }

  //var out = fragmentToken?.span
  //    .expand(nameToken?.span!)
  //    .expand(onToken?.span!)
  //    .expand(typeCondition.span!);
  out = directives.fold<FileSpan>(out, (o, d) => o.expand(d.span));
  if (selectionSet.span != null) {
    return out.expand(selectionSet.span!);
  } else {
    return out;
  }
}