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;
}
}