| Index: pkg/analyzer/lib/src/summary/summary_file_builder.dart
|
| diff --git a/pkg/analyzer/lib/src/summary/summary_file_builder.dart b/pkg/analyzer/lib/src/summary/summary_file_builder.dart
|
| index 0d340b925b6691244041dcc75cca28af823f4b74..d4097706616456c7d461889b11b6ba088fb9b15f 100644
|
| --- a/pkg/analyzer/lib/src/summary/summary_file_builder.dart
|
| +++ b/pkg/analyzer/lib/src/summary/summary_file_builder.dart
|
| @@ -14,10 +14,16 @@ import 'package:analyzer/src/generated/java_io.dart';
|
| import 'package:analyzer/src/generated/sdk.dart';
|
| import 'package:analyzer/src/generated/sdk_io.dart';
|
| import 'package:analyzer/src/generated/source.dart';
|
| +import 'package:analyzer/src/summary/flat_buffers.dart' as fb;
|
| import 'package:analyzer/src/summary/index_unit.dart';
|
| import 'package:analyzer/src/summary/summarize_elements.dart';
|
| import 'package:path/path.dart';
|
|
|
| +const int FIELD_SPEC_INDEX = 1;
|
| +const int FIELD_SPEC_SUM = 0;
|
| +const int FIELD_STRONG_INDEX = 3;
|
| +const int FIELD_STRONG_SUM = 2;
|
| +
|
| class BuilderOutput {
|
| final List<int> sum;
|
| final List<int> index;
|
| @@ -76,6 +82,35 @@ class SummaryBuilder {
|
| BuilderOutput build() => new _Builder(_context, _librarySources).build();
|
| }
|
|
|
| +/**
|
| + * Intermediary summary output result.
|
| + */
|
| +class SummaryOutput {
|
| + final BuilderOutput spec;
|
| + final BuilderOutput strong;
|
| + SummaryOutput(this.spec, this.strong);
|
| +
|
| + /**
|
| + * Write this summary output to the given [outputPath] and return the
|
| + * created file.
|
| + */
|
| + File write(String outputPath) {
|
| + fb.Builder builder = new fb.Builder();
|
| + fb.Offset specSumOffset = builder.writeListUint8(spec.sum);
|
| + fb.Offset specIndexOffset = builder.writeListUint8(spec.index);
|
| + fb.Offset strongSumOffset = builder.writeListUint8(strong.sum);
|
| + fb.Offset strongIndexOffset = builder.writeListUint8(strong.index);
|
| + builder.startTable();
|
| + builder.addOffset(FIELD_SPEC_SUM, specSumOffset);
|
| + builder.addOffset(FIELD_SPEC_INDEX, specIndexOffset);
|
| + builder.addOffset(FIELD_STRONG_SUM, strongSumOffset);
|
| + builder.addOffset(FIELD_STRONG_INDEX, strongIndexOffset);
|
| + fb.Offset offset = builder.endTable();
|
| + return new File(outputPath)
|
| + ..writeAsBytesSync(builder.finish(offset), mode: FileMode.WRITE_ONLY);
|
| + }
|
| +}
|
| +
|
| class _Builder {
|
| final Set<Source> processedSources = new Set<Source>();
|
|
|
|
|