| Index: sdk/lib/_internal/pub/lib/src/solver/solve_report.dart
|
| diff --git a/sdk/lib/_internal/pub/lib/src/solver/solve_report.dart b/sdk/lib/_internal/pub/lib/src/solver/solve_report.dart
|
| index 685687822b8f1b1955cd672035209cddb82d4a84..53507de24aa62853153fd1e6bf02e346d09a78f2 100644
|
| --- a/sdk/lib/_internal/pub/lib/src/solver/solve_report.dart
|
| +++ b/sdk/lib/_internal/pub/lib/src/solver/solve_report.dart
|
| @@ -39,12 +39,6 @@ class _SolveReport {
|
|
|
| final _output = new StringBuffer();
|
|
|
| - /// To avoid emitting trailing newlines, we track if any are needed and only
|
| - /// emit then when text on the next line is about to be written.
|
| - // TODO(rnystrom): Move this into a separate class that wraps any StringSink
|
| - // with this logic.
|
| - int _pendingLines = 0;
|
| -
|
| _SolveReport(this._sources, this._root, this._previousLockFile,
|
| this._result) {
|
| // Fill the map so we can use it later.
|
| @@ -99,13 +93,13 @@ class _SolveReport {
|
| var removed = _previousLockFile.packages.keys.toSet();
|
| removed.removeAll(names);
|
| if (removed.isNotEmpty) {
|
| - _writeln("These packages are no longer being depended on:");
|
| + _output.writeln("These packages are no longer being depended on:");
|
| removed = removed.toList();
|
| removed.sort();
|
| removed.forEach(_reportPackage);
|
| }
|
|
|
| - log.message(_output.toString());
|
| + log.message(_output);
|
| }
|
|
|
| /// Displays a warning about the overrides currently in effect.
|
| @@ -113,14 +107,14 @@ class _SolveReport {
|
| _output.clear();
|
|
|
| if (_result.overrides.isNotEmpty) {
|
| - _writeln("Warning: You are using these overridden dependencies:");
|
| + _output.writeln("Warning: You are using these overridden dependencies:");
|
| var overrides = _result.overrides.map((dep) => dep.name).toList();
|
| overrides.sort((a, b) => a.compareTo(b));
|
|
|
| overrides.forEach(
|
| (name) => _reportPackage(name, highlightOverride: false));
|
|
|
| - log.warning(_output.toString());
|
| + log.warning(_output);
|
| }
|
| }
|
|
|
| @@ -149,39 +143,39 @@ class _SolveReport {
|
| // < The package was downgraded from a higher version.
|
| // * Any other change between the old and new package.
|
| if (isOverridden) {
|
| - _write(log.magenta("! "));
|
| + _output.write(log.magenta("! "));
|
| } else if (newId == null) {
|
| - _write(log.red("- "));
|
| + _output.write(log.red("- "));
|
| } else if (oldId == null) {
|
| - _write(log.green("+ "));
|
| + _output.write(log.green("+ "));
|
| } else if (!_descriptionsEqual(oldId, newId)) {
|
| - _write(log.cyan("* "));
|
| + _output.write(log.cyan("* "));
|
| changed = true;
|
| } else if (oldId.version < newId.version) {
|
| - _write(log.green("> "));
|
| + _output.write(log.green("> "));
|
| changed = true;
|
| } else if (oldId.version > newId.version) {
|
| - _write(log.cyan("< "));
|
| + _output.write(log.cyan("< "));
|
| changed = true;
|
| } else {
|
| // Unchanged.
|
| - _write(" ");
|
| + _output.write(" ");
|
| }
|
|
|
| - _write(log.bold(id.name));
|
| - _write(" ");
|
| + _output.write(log.bold(id.name));
|
| + _output.write(" ");
|
| _writeId(id);
|
|
|
| // If the package was upgraded, show what it was upgraded from.
|
| if (changed) {
|
| - _write(" (was ");
|
| + _output.write(" (was ");
|
| _writeId(oldId);
|
| - _write(")");
|
| + _output.write(")");
|
| }
|
|
|
| // Highlight overridden packages.
|
| if (isOverridden && highlightOverride) {
|
| - _write(" ${log.magenta('(overridden)')}");
|
| + _output.write(" ${log.magenta('(overridden)')}");
|
| }
|
|
|
| // See if there are any newer versions of the package that we were
|
| @@ -211,10 +205,10 @@ class _SolveReport {
|
| "${pluralize('version', newerUnstable)} available)";
|
| }
|
|
|
| - if (message != null) _write(" ${log.cyan(message)}");
|
| + if (message != null) _output.write(" ${log.cyan(message)}");
|
| }
|
|
|
| - _writeln();
|
| + _output.writeln();
|
| }
|
|
|
| /// Returns `true` if [a] and [b] are from the same source and have the same
|
| @@ -233,7 +227,7 @@ class _SolveReport {
|
|
|
| /// Writes a terse description of [id] (not including its name) to the output.
|
| void _writeId(PackageId id) {
|
| - _write(id.version);
|
| + _output.write(id.version);
|
|
|
| var source = null;
|
| if (_sources.contains(id.source)) {
|
| @@ -242,26 +236,7 @@ class _SolveReport {
|
|
|
| if (source != null && source != _sources.defaultSource) {
|
| var description = source.formatDescription(_root.dir, id.description);
|
| - _write(" from ${id.source} $description");
|
| - }
|
| - }
|
| -
|
| - /// Writes [obj] to the output.
|
| - void _write(Object obj) {
|
| - while (_pendingLines > 0) {
|
| - _output.writeln();
|
| - _pendingLines--;
|
| + _output.write(" from ${id.source} $description");
|
| }
|
| - _output.write(obj);
|
| - }
|
| -
|
| - /// Writes [obj] (if not null) followed by a newline to the output.
|
| - ///
|
| - /// Doesn't actually immediately write a newline. Instead, it waits until
|
| - /// output is written on the next line. That way, trailing newlines aren't
|
| - /// displayed.
|
| - void _writeln([Object obj]) {
|
| - if (obj != null) _write(obj);
|
| - _pendingLines++;
|
| }
|
| }
|
|
|