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); + }); + }); }); }