Commit 53fc96da authored by Jacob Richman's avatar Jacob Richman Committed by Adam Barth

Small Flutter strong mode cleanup fixes. (#7825)

* Small Flutter strong mode cleanup fixes.

These are cases where strong mode down cast composite errors
generally indicated cases that would performance or correctness
issues if Flutter code was run in a strong mode VM.

* Fix Command API so that it is always in terms of Map<String,String>.

* Fix typedef
parent 82f887de
......@@ -90,7 +90,7 @@ class OverlayGeometryApp extends StatefulWidget {
OverlayGeometryAppState createState() => new OverlayGeometryAppState();
}
typedef void CardTapCallback(Key targetKey, Point globalPosition);
typedef void CardTapCallback(GlobalKey targetKey, Point globalPosition);
class CardBuilder extends LazyBlockDelegate {
CardBuilder({ this.cardModels, this.onTapUp });
......
......@@ -27,12 +27,13 @@ abstract class Notification {
@protected
@mustCallSuper
bool visitAncestor(Element element) {
if (element is StatelessElement &&
element.widget is NotificationListener<Notification>) {
final NotificationListener<Notification> widget = element.widget;
if (element is StatelessElement) {
StatelessWidget widget = element.widget;
if (widget is NotificationListener<Notification>) {
if (widget._dispatch(this, element)) // that function checks the type dynamically
return false;
}
}
return true;
}
......
......@@ -48,7 +48,7 @@ class Scroll extends CommandWithTarget {
) : super(finder);
/// Deserializes this command from JSON generated by [serialize].
Scroll.deserialize(Map<String, dynamic> json)
Scroll.deserialize(Map<String, String> json)
: this.dx = double.parse(json['dx']),
this.dy = double.parse(json['dy']),
this.duration = new Duration(microseconds: int.parse(json['duration'])),
......@@ -98,7 +98,7 @@ class ScrollIntoView extends CommandWithTarget {
ScrollIntoView(SerializableFinder finder) : super(finder);
/// Deserializes this command from JSON generated by [serialize].
ScrollIntoView.deserialize(Map<String, dynamic> json)
ScrollIntoView.deserialize(Map<String, String> json)
: super.deserialize(json);
// This is here just to be clear that this command isn't adding any extra
......
......@@ -20,7 +20,7 @@ class SetInputText extends CommandWithTarget {
final String text;
/// Deserializes this command from JSON generated by [serialize].
SetInputText.deserialize(Map<String, dynamic> json)
SetInputText.deserialize(Map<String, String> json)
: this.text = json['text'],
super.deserialize(json);
......@@ -55,7 +55,7 @@ class SubmitInputText extends CommandWithTarget {
SubmitInputText(SerializableFinder finder) : super(finder);
/// Deserializes this command from JSON generated by [serialize].
SubmitInputText.deserialize(Map<String, dynamic> json)
SubmitInputText.deserialize(Map<String, String> json)
: super.deserialize(json);
}
......
......@@ -40,7 +40,7 @@ class CoverageCollector {
});
printTrace('pid $pid (port $port): collecting coverage data...');
final Map<dynamic, dynamic> data = await collect(host.address, port, false, false);
final Map<String, dynamic> data = await collect(host.address, port, false, false);
printTrace('pid $pid (port $port): ${ exitCode != null ? "process terminated prematurely with exit code $exitCode; aborting" : "collected coverage data; merging..." }');
if (exitCode != null)
throw new Exception('Failed to collect coverage, process terminated prematurely.');
......
......@@ -147,7 +147,7 @@ void _upgradeCollection(dynamic collection,
if (collection is ServiceMap) {
return;
}
if (collection is Map) {
if (collection is Map<String, dynamic>) {
_upgradeMap(collection, owner);
} else if (collection is List) {
_upgradeList(collection, owner);
......@@ -156,11 +156,11 @@ void _upgradeCollection(dynamic collection,
void _upgradeMap(Map<String, dynamic> map, ServiceObjectOwner owner) {
map.forEach((String k, dynamic v) {
if ((v is Map) && _isServiceMap(v)) {
if ((v is Map<String, dynamic>) && _isServiceMap(v)) {
map[k] = owner.getFromMap(v);
} else if (v is List) {
_upgradeList(v, owner);
} else if (v is Map) {
} else if (v is Map<String, dynamic>) {
_upgradeMap(v, owner);
}
});
......@@ -169,11 +169,11 @@ void _upgradeMap(Map<String, dynamic> map, ServiceObjectOwner owner) {
void _upgradeList(List<dynamic> list, ServiceObjectOwner owner) {
for (int i = 0; i < list.length; i++) {
dynamic v = list[i];
if ((v is Map) && _isServiceMap(v)) {
if ((v is Map<String, dynamic>) && _isServiceMap(v)) {
list[i] = owner.getFromMap(v);
} else if (v is List) {
_upgradeList(v, owner);
} else if (v is Map) {
} else if (v is Map<String, dynamic>) {
_upgradeMap(v, owner);
}
}
......@@ -920,9 +920,9 @@ class ServiceMap extends ServiceObject implements Map<String, dynamic> {
@override
bool containsKey(Object k) => _map.containsKey(k);
@override
void forEach(Function f) => _map.forEach(f);
void forEach(void f(String key, dynamic value)) => _map.forEach(f);
@override
dynamic putIfAbsent(String key, Function ifAbsent) => _map.putIfAbsent(key, ifAbsent);
dynamic putIfAbsent(String key, dynamic ifAbsent()) => _map.putIfAbsent(key, ifAbsent);
@override
void remove(Object key) => _map.remove(key);
@override
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment