SourceSpanWithContext constructor

SourceSpanWithContext(
  1. SourceLocation start,
  2. SourceLocation end,
  3. String text,
  4. String _context,
)

Creates a new span from start to end (exclusive) containing text, in the given context.

start and end must have the same source URL and start must come before end. text must have a number of characters equal to the distance between start and end. context must contain text, and text should start at start.column from the beginning of a line in context.

Implementation

SourceSpanWithContext(
    SourceLocation start, SourceLocation end, String text, this._context)
    : super(start, end, text) {
  if (!context.contains(text)) {
    throw ArgumentError('The context line "$context" must contain "$text".');
  }

  if (findLineStart(context, text, start.column) == null) {
    throw ArgumentError('The span text "$text" must start at '
        'column ${start.column + 1} in a line within "$context".');
  }
}