Add filename to output unit.
This will be used to properly extract text from sources when the output of dump-info only shows span offsets
diff --git a/lib/binary_serialization.dart b/lib/binary_serialization.dart
index 672d280..a19689f 100644
--- a/lib/binary_serialization.dart
+++ b/lib/binary_serialization.dart
@@ -206,6 +206,7 @@
void visitOutput(OutputUnitInfo output) {
sink.writeCached(output, (OutputUnitInfo info) {
_visitBasicInfo(info);
+ sink.writeStringOrNull(info.filename);
sink.writeList(info.imports, sink.writeString);
});
}
@@ -445,6 +446,7 @@
OutputUnitInfo readOutput() => source.readCached<OutputUnitInfo>(() {
OutputUnitInfo info = new OutputUnitInfo.internal();
_readBasicInfo(info);
+ info.filename = source.readStringOrNull();
info.imports = source.readList(source.readString);
return info;
});
diff --git a/lib/info.dart b/lib/info.dart
index b41bb5c..d2019ca 100644
--- a/lib/info.dart
+++ b/lib/info.dart
@@ -203,10 +203,12 @@
/// program unless the application uses deferred imports, in which case there
/// would be an additional output unit per deferred chunk.
class OutputUnitInfo extends BasicInfo {
+ String filename;
+
/// The deferred imports that will load this output unit.
List<String> imports = <String>[];
- OutputUnitInfo(String name, int size)
+ OutputUnitInfo(this.filename, String name, int size)
: super(InfoKind.outputUnit, name, null, size, null);
OutputUnitInfo.internal() : super.internal(InfoKind.outputUnit);
diff --git a/lib/json_info_codec.dart b/lib/json_info_codec.dart
index 92b7d63..e7c9364 100644
--- a/lib/json_info_codec.dart
+++ b/lib/json_info_codec.dart
@@ -92,6 +92,7 @@
OutputUnitInfo parseOutputUnit(Map json) {
OutputUnitInfo result = parseId(json['id']);
result
+ ..filename = json['filename']
..name = json['name']
..size = json['size'];
result.imports
@@ -252,6 +253,7 @@
(json['parameters'] as List).map((p) => parseParameter(p)).toList()
..code = parseCode(json['code'])
..sideEffects = json['sideEffects']
+ ..inlinedCount = json['inlinedCount']
..modifiers =
parseModifiers(new Map<String, bool>.from(json['modifiers']))
..closures = (json['children'] as List)
@@ -583,8 +585,9 @@
visitTypedef(TypedefInfo info) => _visitBasicInfo(info)..['type'] = info.type;
- visitOutput(OutputUnitInfo info) =>
- _visitBasicInfo(info)..['imports'] = info.imports;
+ visitOutput(OutputUnitInfo info) => _visitBasicInfo(info)
+ ..['filename'] = info.filename
+ ..['imports'] = info.imports;
Object _serializeCode(List<CodeSpan> code) {
if (isBackwardCompatible) {