From bb81a1c1a083e27747cc88250f48c4e44778e2c7 Mon Sep 17 00:00:00 2001 From: Polina Date: Mon, 31 Jan 2022 21:26:14 +0000 Subject: [PATCH] Make dominator nullable. TEST="tested with the added test 'root-dominator-is-null'" Bug: https://github.com/flutter/devtools/issues/3025 Change-Id: Ifd6f926e3ecd486d383b03e8b81289310a653bb4 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/230882 Reviewed-by: Slava Egorov Reviewed-by: Kenzie (Schmoll) Davisson Commit-Queue: Kenzie (Schmoll) Davisson --- pkg/vm_snapshot_analysis/CHANGELOG.md | 4 ++++ pkg/vm_snapshot_analysis/lib/precompiler_trace.dart | 2 +- pkg/vm_snapshot_analysis/pubspec.yaml | 2 +- .../test/precompiler_trace_test.dart | 11 +++++++++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/pkg/vm_snapshot_analysis/CHANGELOG.md b/pkg/vm_snapshot_analysis/CHANGELOG.md index 9da6e6a1fd7..f931fce442e 100644 --- a/pkg/vm_snapshot_analysis/CHANGELOG.md +++ b/pkg/vm_snapshot_analysis/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 0.7.1 + +- Make `CallGraphNode.dominator` nullable. + ## 0.7.0 - Migrate to null-safety. diff --git a/pkg/vm_snapshot_analysis/lib/precompiler_trace.dart b/pkg/vm_snapshot_analysis/lib/precompiler_trace.dart index 06e80763d99..49fe92864c7 100644 --- a/pkg/vm_snapshot_analysis/lib/precompiler_trace.dart +++ b/pkg/vm_snapshot_analysis/lib/precompiler_trace.dart @@ -39,7 +39,7 @@ class CallGraphNode { /// Dominator of this node. /// /// Computed by [CallGraph.computeDominators]. - late CallGraphNode dominator; + CallGraphNode? dominator; /// Nodes dominated by this node. /// diff --git a/pkg/vm_snapshot_analysis/pubspec.yaml b/pkg/vm_snapshot_analysis/pubspec.yaml index cf8bed09fd6..45627e60b33 100644 --- a/pkg/vm_snapshot_analysis/pubspec.yaml +++ b/pkg/vm_snapshot_analysis/pubspec.yaml @@ -1,6 +1,6 @@ name: vm_snapshot_analysis description: Utilities for analysing AOT snapshot size. -version: 0.7.0 +version: 0.7.1 homepage: https://github.com/dart-lang/sdk/tree/master/pkg/vm_snapshot_analysis diff --git a/pkg/vm_snapshot_analysis/test/precompiler_trace_test.dart b/pkg/vm_snapshot_analysis/test/precompiler_trace_test.dart index f00e9778e52..43011554fdc 100644 --- a/pkg/vm_snapshot_analysis/test/precompiler_trace_test.dart +++ b/pkg/vm_snapshot_analysis/test/precompiler_trace_test.dart @@ -103,6 +103,7 @@ void main() async { test('collapse-by-package', () async { await withFlag(testSource, '--trace_precompiler_to', (json) async { final jsonRaw = await loadJson(File(json)); + final callGraph = loadTrace(jsonRaw).collapse(NodeType.packageNode); // Collapsing by package should not collapse dart:* libraries into root @@ -110,5 +111,15 @@ void main() async { expect(callGraph.root.pred, isEmpty); }); }); + + test('root-dominator-is-null', () async { + await withFlag(testSource, '--trace_precompiler_to', (json) async { + final jsonRaw = await loadJson(File(json)); + + final callGraph = loadTrace(jsonRaw).collapse(NodeType.classNode); + + expect(callGraph.root.dominator, isNull); + }); + }); }); }