Merge pull request dart-lang/yaml#96 from dart-lang/loader-span-late
Avoid a late FileSpan field
diff --git a/pkgs/yaml/lib/src/loader.dart b/pkgs/yaml/lib/src/loader.dart
index 3705406..c60e673 100644
--- a/pkgs/yaml/lib/src/loader.dart
+++ b/pkgs/yaml/lib/src/loader.dart
@@ -27,18 +27,20 @@
/// The span of the entire stream emitted so far.
FileSpan get span => _span;
- late FileSpan _span;
+ FileSpan _span;
/// Creates a loader that loads [source].
///
/// [sourceUrl] can be a String or a [Uri].
- Loader(String source, {sourceUrl})
- : _parser = Parser(source, sourceUrl: sourceUrl) {
- var event = _parser.parse();
- _span = event.span;
+ factory Loader(String source, {sourceUrl}) {
+ var parser = Parser(source, sourceUrl: sourceUrl);
+ var event = parser.parse();
assert(event.type == EventType.streamStart);
+ return Loader._(parser, event.span);
}
+ Loader._(this._parser, this._span);
+
/// Loads the next document from the stream.
///
/// If there are no more documents, returns `null`.