0794821969
This CL adds a tool that can compare the class hierarchies of two dill files. Currently it only checks for public classes and their public supertypes. We could extend the tool later if needed. Currently it gives this for flutter: ``` $ out/ReleaseX64/dart pkg/kernel/bin/compare_hierarchies.dart /path/to/flutter/bin/cache/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill /path/to/flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/platform_strong.dill "dart:nativewrappers#NativeFieldWrapperClass1" (1): /path/to/flutter/bin/cache/flutter_web_sdk/kernel/flutter_ddc_sdk_sound.dill (2): /path/to/flutter/bin/cache/artifacts/engine/common/flutter_patched_sdk/platform_strong.dill Missing classes in lib dart:_internal In (2) but not in (1): [VMLibraryHooks, Lists, VMInternalsForTesting, ClassID] Missing classes in lib dart:ui In (1) but not in (2): [PlatformViewRegistry] Class(ColorFilter) in dart.ui from (2) has these extra supertypes: [ImageFilter (dart:ui)] ``` where the last line is https://github.com/dart-lang/sdk/issues/48245 It gives this for the dart sdk: ``` $ out/ReleaseX64/dart pkg/kernel/bin/compare_hierarchies.dart out/ReleaseX64/vm_platform_strong.dill out/ReleaseX64/ddc_platform_sound.dill "dart:nativewrappers#NativeFieldWrapperClass1" (1): out/ReleaseX64/vm_platform_strong.dill (2): out/ReleaseX64/ddc_platform_sound.dill Missing classes in lib dart:_internal In (1) but not in (2): [VMLibraryHooks, Lists, VMInternalsForTesting, ClassID] ``` which seems fine (dart:_internal after all) Change-Id: I03c0dbcc3e5058a0c7d6a996b511cf6d449dd4f3 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231100 Reviewed-by: Johnni Winther <johnniwinther@google.com> Commit-Queue: Jens Johansen <jensj@google.com>