tree 948e9463c09d1c1a5a43c9f538deb8c53ef830a6
parent 87cac8a6b4441ee90cbcb0308a8abef7800a914e
author Clayton Wilkinson <wilkinsonclay@google.com> 1584043289 +0000
committer CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> 1584043289 +0000

Revert "[doc_checker] Improve output on error"

This reverts commit f11d94135061b16643d6766a8c7c2e2e8ff32db4.

Reason for revert:  When presubmit checked fxr/333071 patchset 12, docchecker threw an exception:
Unhandled exception:
NoSuchMethodError: The getter 'length' was called on null.
Receiver: null
Tried calling: length
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:53:5)
#1      _StringBase.compareTo (dart:core-patch/string_patch.dart:287:29)
#2      Error.compareTo (package:doc_checker/errors.dart:36:23)
#3      Comparable.compare (dart:core/comparable.dart:95:55)
#4      ListMixin._compareAny (dart:collection/list.dart:347:23)
#5      Sort._insertionSort (dart:_internal/sort.dart:71:36)
#6      Sort._doSort (dart:_internal/sort.dart:60:7)
#7      Sort.sort (dart:_internal/sort.dart:35:5)
#8      ListMixin.sort (dart:collection/list.dart:341:10)
#9      main (file:///b/s/w/ir/k/topaz/tools/doc_checker/bin/main.dart:256:7)
<asynchronous suspension>
#10     _startIsolate.<anonymous closure> (dart:isolate-patch/isolate_patch.dart:299:32)
#11     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.


Original change's description:
> [doc_checker] Improve output on error
> 
> To ease reading errors we
> 
> * Order errors by location, grouping errors coming from the same file;
> * Print `location: error kind: error content`, which follows the typical
>   fomat used by tools such as linters or compilers.
> 
> New output
> 
>     //docs/development/internationalization/localizing_mods.md: Http link is broken: https://fuchsia.googlesource.com/experiences/+/refs/heads/master/examples/localized_flutter_app
>     //docs/development/languages/dart/mod_integration_testing.md: Http link is broken: https://fuchsia.googlesource.com/topaz/+/HEAD/examples/test/driver_example_mod
>     //docs/development/languages/dart/mod_integration_testing.md: Http link is broken: https://fuchsia.googlesource.com/topaz/+/HEAD/examples/test/driver_example_mod/BUILD.gn
>     //docs/development/languages/dart/mod_integration_testing.md: Http link is broken: https://fuchsia.googlesource.com/topaz/+/HEAD/examples/test/driver_example_mod/lib/main.dart
>     //docs/development/languages/dart/mod_integration_testing.md: Http link is broken: https://fuchsia.googlesource.com/topaz/+/HEAD/examples/test/driver_example_mod/test/driver_example_mod_test.dart
>     //docs/development/languages/dart/mod_integration_testing.md: Http link is broken: https://fuchsia.googlesource.com/topaz/+/master/examples/test/driver_example_mod/test/driver_example_mod_test.dart
>     //docs/development/languages/dart/mod_integration_testing.md: Http link is broken: https://fuchsia.googlesource.com/topaz/+/master/examples/test/driver_example_mod/meta/driver_example_mod_tests.cmx
>     //docs/development/languages/fidl/CONTRIBUTING.md: Http link is broken: https://chromium.googlesource.com/chromium/src/+/master/build/fuchsia/fidlgen_js/
>     //docs/development/languages/fidl/CONTRIBUTING.md: Http link is broken: https://chromium.googlesource.com/chromium/src/+/master/build/fuchsia/fidlgen_js/runtime/
>     //docs/gen/build_arguments.md: Http link is broken: https://llvm.org/docs/UndefinedBehaviorSanitizer.html
>     Found 10 error(s).
> 
> Old output
> 
>     Http link is broken      : https://chromium.googlesource.com/chromium/src/+/master/build/fuchsia/fidlgen_js/ (//docs/development/languages/fidl/CONTRIBUTING.md)
>     Http link is broken      : https://chromium.googlesource.com/chromium/src/+/master/build/fuchsia/fidlgen_js/runtime/ (//docs/development/languages/fidl/CONTRIBUTING.md)
>     Http link is broken      : https://fuchsia.googlesource.com/topaz/+/HEAD/examples/test/driver_example_mod (//docs/development/languages/dart/mod_integration_testing.md)
>     Http link is broken      : https://fuchsia.googlesource.com/topaz/+/HEAD/examples/test/driver_example_mod/BUILD.gn (//docs/development/languages/dart/mod_integration_testing.md)
>     Http link is broken      : https://fuchsia.googlesource.com/topaz/+/HEAD/examples/test/driver_example_mod/lib/main.dart (//docs/development/languages/dart/mod_integration_testing.md)
>     Http link is broken      : https://fuchsia.googlesource.com/topaz/+/HEAD/examples/test/driver_example_mod/test/driver_example_mod_test.dart (//docs/development/languages/dart/mod_integration_testing.md)
>     Http link is broken      : https://fuchsia.googlesource.com/topaz/+/master/examples/test/driver_example_mod/test/driver_example_mod_test.dart (//docs/development/languages/dart/mod_integration_testing.md)
>     Http link is broken      : https://fuchsia.googlesource.com/topaz/+/master/examples/test/driver_example_mod/meta/driver_example_mod_tests.cmx (//docs/development/languages/dart/mod_integration_testing.md)
>     Http link is broken      : https://llvm.org/docs/UndefinedBehaviorSanitizer.html (//docs/gen/build_arguments.md)
>     Http link is broken      : https://fuchsia.googlesource.com/experiences/+/refs/heads/master/examples/localized_flutter_app (//docs/development/internationalization/localizing_mods.md)
>     Found 10 error(s).
> 
> Change-Id: Ifbdbdf4e9592e2bdc909bbe1f2274b3e56198415

TBR=pascallouis@google.com,ccherubino@google.com,wilkinsonclay@google.com

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I7422332d071d565ac7d4aa95e3e9d9946aef5d8a
