[observatory] Progress toward static mode compatibility.
Bug: https://github.com/dart-lang/sdk/issues/32503
Change-Id: Ic4390dce8874aab4aaa87fa4153aef668f28738e
Reviewed-on: https://dart-review.googlesource.com/64982
Reviewed-by: Zach Anderson <zra@google.com>
diff --git a/runtime/observatory/lib/src/allocation_profile/allocation_profile.dart b/runtime/observatory/lib/src/allocation_profile/allocation_profile.dart
index 8bc2357..fce8ce3 100644
--- a/runtime/observatory/lib/src/allocation_profile/allocation_profile.dart
+++ b/runtime/observatory/lib/src/allocation_profile/allocation_profile.dart
@@ -13,7 +13,7 @@
final S.HeapSpace oldSpace;
final Iterable<M.ClassHeapStats> members;
- AllocationProfile(S.ServiceMap map, {Map<String, List<String>> defaults})
+ AllocationProfile(S.ServiceMap map, {Map/*<String, List<String>>*/ defaults})
: lastAccumulatorReset = _intString2DateTime(map[_lastAccumulatorReset]),
lastServiceGC = _intString2DateTime(map[_lastServiceGC]),
oldSpace = new S.HeapSpace()..update(map['heaps']['old']),
@@ -32,8 +32,8 @@
return new ClassHeapStats(map);
}
- static List<M.ClassHeapStats> _convertMembers(/*Iterable<S.ServiceMap>*/ raw,
- {Map<String, List<String>> defaults}) {
+ static List<M.ClassHeapStats> _convertMembers(Iterable/*<S.ServiceMap>*/ raw,
+ {Map/*<String, List<String>>*/ defaults}) {
final List<M.ClassHeapStats> members =
raw.map<ClassHeapStats>(_convertMember).toList();
if (defaults == null) {
@@ -43,7 +43,7 @@
new Map.fromIterable(defaults.keys, value: (_) => <ClassHeapStats>[]);
final Map<String, List<ClassHeapStats>> accumulators =
<String, List<ClassHeapStats>>{};
- defaults.forEach((String key, List<String> values) {
+ defaults.forEach((/*String*/ key, /*List<String>*/ values) {
final classes = aliases[key];
accumulators.addAll(new Map.fromIterable(values, value: (_) => classes));
});
@@ -69,7 +69,7 @@
final int promotedInstances;
final int promotedBytes;
- ClassHeapStats(S.ServiceMap map)
+ ClassHeapStats(Map map)
: clazz = map['class'],
oldSpace = new S.Allocations()..update(map['old']),
newSpace = new S.Allocations()..update(map['new']),
diff --git a/runtime/observatory/lib/src/elements/cpu_profile_table.dart b/runtime/observatory/lib/src/elements/cpu_profile_table.dart
index 4d3e817..a78e2a4 100644
--- a/runtime/observatory/lib/src/elements/cpu_profile_table.dart
+++ b/runtime/observatory/lib/src/elements/cpu_profile_table.dart
@@ -171,7 +171,7 @@
_callers.items = const [];
_callees.items = const [];
}
- return [
+ return <Element>[
new DivElement()
..classes = ['profile-trees']
..children = <Element>[
@@ -200,7 +200,7 @@
];
}
- Element _createFunction() {
+ HtmlElement _createFunction() {
final element = new DivElement()
..classes = ['function-item']
..children = <Element>[
@@ -255,7 +255,8 @@
]
];
- bool _searchFunction(Pattern pattern, M.ProfileFunction item) {
+ bool _searchFunction(Pattern pattern, itemDynamic) {
+ M.ProfileFunction item = itemDynamic;
return M.getFunctionFullName(item.function).contains(pattern);
}
@@ -277,7 +278,7 @@
_r.dirty();
}
- Element _createCallee() {
+ HtmlElement _createCallee() {
final element = new DivElement()
..classes = ['function-item']
..children = <Element>[
@@ -316,7 +317,7 @@
]
];
- Element _createCaller() {
+ HtmlElement _createCaller() {
final element = new DivElement()
..classes = ['function-item']
..children = <Element>[
@@ -403,8 +404,10 @@
];
}
- bool _filterTree(M.FunctionCallTreeNode node) =>
- node.profileFunction == _selected;
+ bool _filterTree(nodeDynamic) {
+ M.FunctionCallTreeNode node = nodeDynamic;
+ return node.profileFunction == _selected;
+ }
Future _request({bool clear: false, bool forceFetch: false}) async {
_progress = null;
@@ -452,9 +455,15 @@
}
switch (_sortingDirection[table]) {
case _SortingDirection.ascending:
- return (a, b) => getter(a).compareTo(getter(b));
+ int sort(M.ProfileFunction a, M.ProfileFunction b) {
+ return getter(a).compareTo(getter(b));
+ }
+ return sort;
case _SortingDirection.descending:
- return (a, b) => getter(b).compareTo(getter(a));
+ int sort(M.ProfileFunction a, M.ProfileFunction b) {
+ return getter(b).compareTo(getter(a));
+ }
+ return sort;
}
}
diff --git a/runtime/observatory/lib/src/elements/field_view.dart b/runtime/observatory/lib/src/elements/field_view.dart
index 413da30..27422a4 100644
--- a/runtime/observatory/lib/src/elements/field_view.dart
+++ b/runtime/observatory/lib/src/elements/field_view.dart
@@ -183,19 +183,18 @@
}
List<Element> _createMenu() {
- final menu = [
+ final menu = <Element>[
new NavTopMenuElement(queue: _r.queue),
new NavVMMenuElement(_vm, _events, queue: _r.queue),
new NavIsolateMenuElement(_isolate, _events, queue: _r.queue)
];
if (_library != null) {
- menu.add(new NavLibraryMenuElement(_isolate, _field.dartOwner,
- queue: _r.queue));
+ menu.add(new NavLibraryMenuElement(_isolate, _library, queue: _r.queue));
} else if (_field.dartOwner is M.ClassRef) {
menu.add(
new NavClassMenuElement(_isolate, _field.dartOwner, queue: _r.queue));
}
- menu.addAll([
+ menu.addAll(<Element>[
navMenu(_field.name),
new NavRefreshElement(queue: _r.queue)
..onRefresh.listen((e) {
diff --git a/runtime/observatory/lib/src/elements/instance_ref.dart b/runtime/observatory/lib/src/elements/instance_ref.dart
index c706eec..9130e69 100644
--- a/runtime/observatory/lib/src/elements/instance_ref.dart
+++ b/runtime/observatory/lib/src/elements/instance_ref.dart
@@ -245,20 +245,26 @@
}
switch (_instance.kind) {
case M.InstanceKind.closure:
- return [
- new DivElement()
- ..children = <Element>[
- new SpanElement()..text = 'function = ',
- anyRef(_isolate, _loadedInstance.closureFunction, _objects,
- queue: _r.queue)
- ],
- new DivElement()
- ..children = <Element>[
- new SpanElement()..text = 'context = ',
- anyRef(_isolate, _loadedInstance.closureContext, _objects,
- queue: _r.queue)
- ],
- ];
+ {
+ var members = <Element>[];
+ if (_loadedInstance.closureFunction != null) {
+ members.add(new DivElement()
+ ..children = <Element>[
+ new SpanElement()..text = 'function = ',
+ anyRef(_isolate, _loadedInstance.closureFunction, _objects,
+ queue: _r.queue)
+ ]);
+ }
+ if (_loadedInstance.closureContext != null) {
+ members.add(new DivElement()
+ ..children = <Element>[
+ new SpanElement()..text = 'context = ',
+ anyRef(_isolate, _loadedInstance.closureContext, _objects,
+ queue: _r.queue)
+ ]);
+ }
+ return members;
+ }
case M.InstanceKind.plainInstance:
return _loadedInstance.fields
.map<Element>((f) => new DivElement()
diff --git a/runtime/observatory/lib/src/elements/instance_view.dart b/runtime/observatory/lib/src/elements/instance_view.dart
index bf280a3..174af31 100644
--- a/runtime/observatory/lib/src/elements/instance_view.dart
+++ b/runtime/observatory/lib/src/elements/instance_view.dart
@@ -190,7 +190,7 @@
}
List<Element> _createMenu() {
- final menu = [
+ final menu = <Element>[
new NavTopMenuElement(queue: _r.queue),
new NavVMMenuElement(_vm, _events, queue: _r.queue),
new NavIsolateMenuElement(_isolate, _events, queue: _r.queue)
@@ -198,7 +198,7 @@
if (_library != null) {
menu.add(new NavLibraryMenuElement(_isolate, _library, queue: _r.queue));
}
- menu.addAll([
+ menu.addAll(<Element>[
new NavClassMenuElement(_isolate, _instance.clazz, queue: _r.queue),
navMenu('instance'),
new NavRefreshElement(queue: _r.queue)
diff --git a/runtime/observatory/lib/src/elements/memory/allocations.dart b/runtime/observatory/lib/src/elements/memory/allocations.dart
index e5f236d..1d8c4ba 100644
--- a/runtime/observatory/lib/src/elements/memory/allocations.dart
+++ b/runtime/observatory/lib/src/elements/memory/allocations.dart
@@ -129,9 +129,15 @@
}
switch (_sortingDirection) {
case _SortingDirection.ascending:
- return (a, b) => getter(a).compareTo(getter(b));
+ int sort(M.ClassHeapStats a, M.ClassHeapStats b) {
+ return getter(a).compareTo(getter(b));
+ }
+ return sort;
case _SortingDirection.descending:
- return (a, b) => getter(b).compareTo(getter(a));
+ int sort(M.ClassHeapStats a, M.ClassHeapStats b) {
+ return getter(b).compareTo(getter(a));
+ }
+ return sort;
}
}
@@ -243,7 +249,8 @@
});
}
- bool _search(Pattern pattern, M.ClassHeapStats item) {
+ bool _search(Pattern pattern, itemDynamic) {
+ M.ClassHeapStats item = itemDynamic;
final String value = item.clazz?.name ?? item.displayName;
return value.contains(pattern);
}
diff --git a/runtime/observatory/lib/src/elements/memory/graph.dart b/runtime/observatory/lib/src/elements/memory/graph.dart
index c9c3408..30b18ac 100644
--- a/runtime/observatory/lib/src/elements/memory/graph.dart
+++ b/runtime/observatory/lib/src/elements/memory/graph.dart
@@ -199,7 +199,7 @@
}
}
- String _formatTimeAxis(num ms) =>
+ String _formatTimeAxis(dynamic ms) =>
Utils.formatDuration(new Duration(microseconds: ms.toInt()),
precision: DurationComponent.Seconds);
diff --git a/runtime/observatory/lib/src/elements/memory/snapshot.dart b/runtime/observatory/lib/src/elements/memory/snapshot.dart
index 5070374..816a772 100644
--- a/runtime/observatory/lib/src/elements/memory/snapshot.dart
+++ b/runtime/observatory/lib/src/elements/memory/snapshot.dart
@@ -72,7 +72,7 @@
children = const [];
return;
}
- List<HtmlElement> content;
+ List<Element> content;
switch (_progress.status) {
case M.HeapSnapshotLoadingStatus.fetching:
content = _createStatusMessage('Fetching snapshot from VM...',
@@ -139,7 +139,7 @@
VirtualTreeElement _tree;
List<Element> _createReport() {
- final List roots = _getChildrenDominator(_snapshot.dominatorTree);
+ final List roots = _getChildrenDominator(_snapshot.dominatorTree).toList();
_tree = new VirtualTreeElement(
_createDominator, _updateDominator, _getChildrenDominator,
items: roots, queue: _r.queue);
@@ -195,8 +195,8 @@
.take(kMaxChildren);
}
- void _updateDominator(
- HtmlElement element, M.HeapSnapshotDominatorNode node, int depth) {
+ void _updateDominator(HtmlElement element, nodeDynamic, int depth) {
+ M.HeapSnapshotDominatorNode node = nodeDynamic;
element.children[0].text = Utils.formatSize(node.retainedSize);
_updateLines(element.children[1].children, depth);
if (_getChildrenDominator(node).isNotEmpty) {
diff --git a/runtime/observatory/lib/src/elements/native_memory_profiler.dart b/runtime/observatory/lib/src/elements/native_memory_profiler.dart
index 7096aa5..b32f2d2 100644
--- a/runtime/observatory/lib/src/elements/native_memory_profiler.dart
+++ b/runtime/observatory/lib/src/elements/native_memory_profiler.dart
@@ -133,7 +133,7 @@
_direction = tree.direction = e.element.direction;
}),
new BRElement(),
- tree = new CpuProfileVirtualTreeElement(_vm, _progress.profile,
+ tree = new CpuProfileVirtualTreeElement(null, _progress.profile,
queue: _r.queue, type: M.SampleProfileType.memory)
]);
}
diff --git a/runtime/observatory/lib/src/elements/nav/notify_exception.dart b/runtime/observatory/lib/src/elements/nav/notify_exception.dart
index 58836f6..3c84af7 100644
--- a/runtime/observatory/lib/src/elements/nav/notify_exception.dart
+++ b/runtime/observatory/lib/src/elements/nav/notify_exception.dart
@@ -88,7 +88,7 @@
}
void renderGenericException() {
- List<Node> content;
+ List<Element> content;
content = <Element>[
new SpanElement()..text = 'Unexpected exception:',
new BRElement(),
@@ -97,7 +97,7 @@
new BRElement()
];
if (stacktrace != null) {
- content.addAll([
+ content.addAll(<Element>[
new SpanElement()..text = 'StackTrace:',
new BRElement(),
new BRElement(),
@@ -105,7 +105,7 @@
new BRElement()
]);
}
- content.addAll([
+ content.addAll(<Element>[
new SpanElement()..text = '[',
new AnchorElement(href: Uris.vmConnect())
..text = 'Connect to a different VM',
diff --git a/runtime/observatory/lib/src/elements/timeline/dashboard.dart b/runtime/observatory/lib/src/elements/timeline/dashboard.dart
index d7b2b09..dbac222 100644
--- a/runtime/observatory/lib/src/elements/timeline/dashboard.dart
+++ b/runtime/observatory/lib/src/elements/timeline/dashboard.dart
@@ -207,7 +207,8 @@
Future _refresh() async {
_flags = await _repository.getFlags(vm);
_r.dirty();
- final params = new Map.from(await _repository.getIFrameParams(vm));
+ final params =
+ new Map<String, dynamic>.from(await _repository.getIFrameParams(vm));
return _postMessage('refresh', params);
}
diff --git a/runtime/observatory/lib/src/service/object.dart b/runtime/observatory/lib/src/service/object.dart
index 826897c..b6f6fe3 100644
--- a/runtime/observatory/lib/src/service/object.dart
+++ b/runtime/observatory/lib/src/service/object.dart
@@ -2932,8 +2932,9 @@
fields = null;
}
if (map['_nativeFields'] != null) {
- nativeFields =
- map['_nativeFields'].map((f) => new NativeField(f['value'])).toList();
+ nativeFields = map['_nativeFields']
+ .map<NativeField>((f) => new NativeField(f['value']))
+ .toList();
} else {
nativeFields = null;
}
@@ -2951,7 +2952,7 @@
}
if (map['associations'] != null) {
associations = map['associations']
- .map((a) => new MapAssociation(a['key'], a['value']))
+ .map<MapAssociation>((a) => new MapAssociation(a['key'], a['value']))
.toList();
} else {
associations = null;
@@ -4003,7 +4004,8 @@
return M.ObjectPoolEntryKind.object;
case 'Immediate':
return M.ObjectPoolEntryKind.immediate;
- case 'NativeEntry':
+ case 'NativeFunction':
+ case 'NativeFunctionWrapper':
return M.ObjectPoolEntryKind.nativeEntry;
}
throw new Exception('Unknown ObjectPoolEntryKind ($kind)');
@@ -4393,8 +4395,8 @@
return null;
}
- void _processInline(List<ServiceFunction> inlinedFunctionsTable,
- List<List<int>> inlinedIntervals) {
+ void _processInline(List/*<ServiceFunction>*/ inlinedFunctionsTable,
+ List/*<List<int>>*/ inlinedIntervals) {
for (var i = 0; i < inlinedIntervals.length; i++) {
var inlinedInterval = inlinedIntervals[i];
var start = inlinedInterval[0] + startAddress;
diff --git a/runtime/observatory/lib/utils.dart b/runtime/observatory/lib/utils.dart
index 4167fb5..caace77 100644
--- a/runtime/observatory/lib/utils.dart
+++ b/runtime/observatory/lib/utils.dart
@@ -97,7 +97,7 @@
}
static String formatSize(bytesDynamic) {
- int bytes = bytesDynamic;
+ int bytes = bytesDynamic.toInt();
const int digits = 1;
const int bytesPerKB = 1024;
const int bytesPerMB = 1024 * bytesPerKB;
diff --git a/runtime/observatory/tests/observatory_ui/observatory_ui.status b/runtime/observatory/tests/observatory_ui/observatory_ui.status
index 5619242..002abb6 100644
--- a/runtime/observatory/tests/observatory_ui/observatory_ui.status
+++ b/runtime/observatory/tests/observatory_ui/observatory_ui.status
@@ -16,7 +16,6 @@
isolate/isolate-shared-summary/element_test: CompileTimeError # observatory is not strong clean (Issue 32503)
isolate_reconnect/element_test: RuntimeError # observatory is not strong clean (Issue 32503)
megamorphiccache_view/element_test: RuntimeError # observatory is not strong clean (Issue 32503)
-nav/notify/element_test: RuntimeError # observatory is not strong clean (Issue 32503)
nav/notify_event/element_test: RuntimeError # observatory is not strong clean (Issue 32503)
nav/notify_exception/connection_exception_test: Timeout, RuntimeError # observatory is not strong clean (Issue 32503)
nav/notify_exception/exception_test: Timeout, RuntimeError # observatory is not strong clean (Issue 32503)