Merge pull request #2664 from Hixie/less-dynamic
Remove some more 'dynamic's
diff --git a/packages/flutter/lib/src/widgets/drag_target.dart b/packages/flutter/lib/src/widgets/drag_target.dart
index c75161d..26fc99f 100644
--- a/packages/flutter/lib/src/widgets/drag_target.dart
+++ b/packages/flutter/lib/src/widgets/drag_target.dart
@@ -80,7 +80,7 @@
/// Should return a new MultiDragGestureRecognizer instance
/// constructed with the given arguments.
- MultiDragGestureRecognizer<dynamic> createRecognizer(GestureMultiDragStartCallback onStart);
+ MultiDragGestureRecognizer<MultiDragPointerState> createRecognizer(GestureMultiDragStartCallback onStart);
_DraggableState<T> createState() => new _DraggableState<T>();
}
diff --git a/packages/flutter/lib/src/widgets/framework.dart b/packages/flutter/lib/src/widgets/framework.dart
index 2babda7..c4f3973 100644
--- a/packages/flutter/lib/src/widgets/framework.dart
+++ b/packages/flutter/lib/src/widgets/framework.dart
@@ -1410,7 +1410,7 @@
List<Widget> badAncestors = <Widget>[];
Element ancestor = parent;
while (ancestor != null) {
- if (ancestor is ParentDataElement<dynamic>) {
+ if (ancestor is ParentDataElement<RenderObjectWidget>) {
badAncestors.add(ancestor.widget);
} else if (ancestor is RenderObjectElement) {
if (widget.debugIsValidAncestor(ancestor.widget))
@@ -1439,7 +1439,7 @@
if (child is RenderObjectElement) {
child.updateParentData(widget);
} else {
- assert(child is! ParentDataElement<dynamic>);
+ assert(child is! ParentDataElement<RenderObjectWidget>);
child.visitChildren(notifyChildren);
}
}
@@ -1509,10 +1509,10 @@
return ancestor;
}
- ParentDataElement<dynamic> _findAncestorParentDataElement() {
+ ParentDataElement<RenderObjectWidget> _findAncestorParentDataElement() {
Element ancestor = _parent;
while (ancestor != null && ancestor is! RenderObjectElement) {
- if (ancestor is ParentDataElement<dynamic>)
+ if (ancestor is ParentDataElement<RenderObjectWidget>)
return ancestor;
ancestor = ancestor._parent;
}
@@ -1714,7 +1714,7 @@
widget.didUnmountRenderObject(renderObject);
}
- void updateParentData(ParentDataWidget<dynamic> parentData) {
+ void updateParentData(ParentDataWidget<RenderObjectWidget> parentData) {
parentData.applyParentData(renderObject);
}
@@ -1730,7 +1730,7 @@
_slot = newSlot;
_ancestorRenderObjectElement = _findAncestorRenderObjectElement();
_ancestorRenderObjectElement?.insertChildRenderObject(renderObject, newSlot);
- ParentDataElement<dynamic> parentDataElement = _findAncestorParentDataElement();
+ ParentDataElement<RenderObjectWidget> parentDataElement = _findAncestorParentDataElement();
if (parentDataElement != null)
updateParentData(parentDataElement.widget);
}
@@ -1803,7 +1803,7 @@
}
void insertChildRenderObject(RenderObject child, dynamic slot) {
- final RenderObjectWithChildMixin<dynamic> renderObject = this.renderObject;
+ final RenderObjectWithChildMixin<RenderObject> renderObject = this.renderObject;
assert(slot == null);
renderObject.child = child;
assert(renderObject == this.renderObject);
@@ -1814,7 +1814,7 @@
}
void removeChildRenderObject(RenderObject child) {
- final RenderObjectWithChildMixin<dynamic> renderObject = this.renderObject;
+ final RenderObjectWithChildMixin<RenderObject> renderObject = this.renderObject;
assert(renderObject.child == child);
renderObject.child = null;
assert(renderObject == this.renderObject);
@@ -1835,19 +1835,19 @@
final Set<Element> _detachedChildren = new HashSet<Element>();
void insertChildRenderObject(RenderObject child, Element slot) {
- final ContainerRenderObjectMixin<dynamic, dynamic> renderObject = this.renderObject;
+ final ContainerRenderObjectMixin<RenderObject, ContainerParentDataMixin<RenderObject>> renderObject = this.renderObject;
renderObject.insert(child, after: slot?.renderObject);
assert(renderObject == this.renderObject);
}
void moveChildRenderObject(RenderObject child, dynamic slot) {
- final ContainerRenderObjectMixin<dynamic, dynamic> renderObject = this.renderObject;
+ final ContainerRenderObjectMixin<RenderObject, ContainerParentDataMixin<RenderObject>> renderObject = this.renderObject;
renderObject.move(child, after: slot?.renderObject);
assert(renderObject == this.renderObject);
}
void removeChildRenderObject(RenderObject child) {
- final ContainerRenderObjectMixin<dynamic, dynamic> renderObject = this.renderObject;
+ final ContainerRenderObjectMixin<RenderObject, ContainerParentDataMixin<RenderObject>> renderObject = this.renderObject;
assert(child.parent == renderObject);
renderObject.remove(child);
assert(renderObject == this.renderObject);
diff --git a/packages/flutter/lib/src/widgets/notification_listener.dart b/packages/flutter/lib/src/widgets/notification_listener.dart
index c35d0d1..b47bd88 100644
--- a/packages/flutter/lib/src/widgets/notification_listener.dart
+++ b/packages/flutter/lib/src/widgets/notification_listener.dart
@@ -13,8 +13,8 @@
void dispatch(BuildContext target) {
target.visitAncestorElements((Element element) {
if (element is StatelessElement &&
- element.widget is NotificationListener<dynamic>) {
- final NotificationListener<dynamic> widget = element.widget;
+ element.widget is NotificationListener<Notification>) {
+ final NotificationListener<Notification> widget = element.widget;
if (widget._dispatch(this)) // that function checks the type dynamically
return false;
}
diff --git a/packages/flutter/lib/src/widgets/virtual_viewport.dart b/packages/flutter/lib/src/widgets/virtual_viewport.dart
index 447f3bc..7e9f6d4 100644
--- a/packages/flutter/lib/src/widgets/virtual_viewport.dart
+++ b/packages/flutter/lib/src/widgets/virtual_viewport.dart
@@ -72,7 +72,7 @@
List<Element> _materializedChildren = const <Element>[];
- RenderVirtualViewport<dynamic> get renderObject => super.renderObject;
+ RenderVirtualViewport<ContainerBoxParentDataMixin<RenderBox>> get renderObject => super.renderObject;
void visitChildren(ElementVisitor visitor) {
if (_materializedChildren == null)
diff --git a/packages/flutter/test/widget/scroll_events_test.dart b/packages/flutter/test/widget/scroll_events_test.dart
index ad08a14..7a12720 100644
--- a/packages/flutter/test/widget/scroll_events_test.dart
+++ b/packages/flutter/test/widget/scroll_events_test.dart
@@ -46,7 +46,7 @@
test('Scroll scrollTo animation', () {
testWidgets((WidgetTester tester) {
- GlobalKey<ScrollableState> scrollKey = new GlobalKey<ScrollableState>();
+ GlobalKey<ScrollableState<Scrollable>> scrollKey = new GlobalKey<ScrollableState<Scrollable>>();
List<String> log = <String>[];
tester.pumpWidget(_buildScroller(key: scrollKey, log: log));
@@ -64,7 +64,7 @@
test('Scroll scrollTo no animation', () {
testWidgets((WidgetTester tester) {
- GlobalKey<ScrollableState> scrollKey = new GlobalKey<ScrollableState>();
+ GlobalKey<ScrollableState<Scrollable>> scrollKey = new GlobalKey<ScrollableState<Scrollable>>();
List<String> log = <String>[];
tester.pumpWidget(_buildScroller(key: scrollKey, log: log));
@@ -76,7 +76,7 @@
test('Scroll during animation', () {
testWidgets((WidgetTester tester) {
- GlobalKey<ScrollableState> scrollKey = new GlobalKey<ScrollableState>();
+ GlobalKey<ScrollableState<Scrollable>> scrollKey = new GlobalKey<ScrollableState<Scrollable>>();
List<String> log = <String>[];
tester.pumpWidget(_buildScroller(key: scrollKey, log: log));
@@ -98,7 +98,7 @@
test('Scroll during animation', () {
testWidgets((WidgetTester tester) {
- GlobalKey<ScrollableState> scrollKey = new GlobalKey<ScrollableState>();
+ GlobalKey<ScrollableState<Scrollable>> scrollKey = new GlobalKey<ScrollableState<Scrollable>>();
List<String> log = <String>[];
tester.pumpWidget(_buildScroller(key: scrollKey, log: log));
@@ -120,7 +120,7 @@
test('fling, fling generates one start/end pair', () {
testWidgets((WidgetTester tester) {
- GlobalKey<ScrollableState> scrollKey = new GlobalKey<ScrollableState>();
+ GlobalKey<ScrollableState<Scrollable>> scrollKey = new GlobalKey<ScrollableState<Scrollable>>();
List<String> log = <String>[];
tester.pumpWidget(_buildScroller(key: scrollKey, log: log));
diff --git a/packages/flutter_tools/.analysis_options b/packages/flutter_tools/.analysis_options
index fb5be33..0a56cc4 100644
--- a/packages/flutter_tools/.analysis_options
+++ b/packages/flutter_tools/.analysis_options
@@ -15,7 +15,6 @@
strong_mode_invalid_method_override: ignore
strong_mode_static_type_error: ignore
strong_mode_down_cast_composite: ignore
- type_argument_not_matching_bounds: ignore
# we allow having TODOs in the code
todo: ignore
linter: