import '../token.dart'; import 'directive.dart'; import 'node.dart'; import 'package:source_span/source_span.dart'; class FragmentSpreadContext extends Node { final Token ELLIPSIS, NAME; final List<DirectiveContext> directives = []; FragmentSpreadContext(this.ELLIPSIS, this.NAME); String get name => NAME.text; @override FileSpan get span { var out = ELLIPSIS.span.expand(NAME.span); if (directives.isEmpty) return out; return directives.fold<FileSpan>(out, (o, d) => o.expand(d.span)); } }