Unverified Commit 166d422b authored by Alexandre Ardhuin's avatar Alexandre Ardhuin Committed by GitHub

implicit-casts:false in flutter/lib/src/widgets (#45728)

* implicit-casts:false in flutter/lib/src/widgets

* address review comments

* address review comment
parent 54e7b2ba
...@@ -215,7 +215,7 @@ class Actions extends InheritedWidget { ...@@ -215,7 +215,7 @@ class Actions extends InheritedWidget {
// doesn't find one. // doesn't find one.
static ActionDispatcher _findDispatcher(Element element) { static ActionDispatcher _findDispatcher(Element element) {
assert(element.widget is Actions); assert(element.widget is Actions);
final Actions actions = element.widget; final Actions actions = element.widget as Actions;
ActionDispatcher dispatcher = actions.dispatcher; ActionDispatcher dispatcher = actions.dispatcher;
if (dispatcher == null) { if (dispatcher == null) {
bool visitAncestorElement(Element visitedElement) { bool visitAncestorElement(Element visitedElement) {
...@@ -223,7 +223,7 @@ class Actions extends InheritedWidget { ...@@ -223,7 +223,7 @@ class Actions extends InheritedWidget {
// Continue visiting. // Continue visiting.
return true; return true;
} }
final Actions actions = visitedElement.widget; final Actions actions = visitedElement.widget as Actions;
if (actions.dispatcher == null) { if (actions.dispatcher == null) {
// Continue visiting. // Continue visiting.
return true; return true;
...@@ -250,7 +250,7 @@ class Actions extends InheritedWidget { ...@@ -250,7 +250,7 @@ class Actions extends InheritedWidget {
static ActionDispatcher of(BuildContext context, {bool nullOk = false}) { static ActionDispatcher of(BuildContext context, {bool nullOk = false}) {
assert(context != null); assert(context != null);
final InheritedElement inheritedElement = context.getElementForInheritedWidgetOfExactType<Actions>(); final InheritedElement inheritedElement = context.getElementForInheritedWidgetOfExactType<Actions>();
final Actions inherited = context.dependOnInheritedElement(inheritedElement); final Actions inherited = context.dependOnInheritedElement(inheritedElement) as Actions;
assert(() { assert(() {
if (nullOk) { if (nullOk) {
return true; return true;
...@@ -306,7 +306,7 @@ class Actions extends InheritedWidget { ...@@ -306,7 +306,7 @@ class Actions extends InheritedWidget {
// Below when we invoke the action, we need to use the dispatcher from the // Below when we invoke the action, we need to use the dispatcher from the
// Actions widget where we found the action, in case they need to match. // Actions widget where we found the action, in case they need to match.
actionsElement = element; actionsElement = element;
final Actions actions = element.widget; final Actions actions = element.widget as Actions;
action = actions.actions[intent.key]?.call(); action = actions.actions[intent.key]?.call();
// Keep looking if we failed to find and create an action. // Keep looking if we failed to find and create an action.
return action == null; return action == null;
......
...@@ -268,12 +268,10 @@ class AsyncSnapshot<T> { ...@@ -268,12 +268,10 @@ class AsyncSnapshot<T> {
bool operator ==(dynamic other) { bool operator ==(dynamic other) {
if (identical(this, other)) if (identical(this, other))
return true; return true;
if (other is! AsyncSnapshot<T>) return other is AsyncSnapshot<T>
return false; && other.connectionState == connectionState
final AsyncSnapshot<T> typedOther = other; && other.data == data
return connectionState == typedOther.connectionState && other.error == error;
&& data == typedOther.data
&& error == typedOther.error;
} }
@override @override
......
...@@ -107,7 +107,7 @@ class _AutomaticKeepAliveState extends State<AutomaticKeepAlive> { ...@@ -107,7 +107,7 @@ class _AutomaticKeepAliveState extends State<AutomaticKeepAlive> {
/// the first build of that child has not completed yet. /// the first build of that child has not completed yet.
ParentDataElement<SliverWithKeepAliveWidget> _getChildElement() { ParentDataElement<SliverWithKeepAliveWidget> _getChildElement() {
assert(mounted); assert(mounted);
final Element element = context; final Element element = context as Element;
Element childElement; Element childElement;
// We use Element.visitChildren rather than context.visitChildElements // We use Element.visitChildren rather than context.visitChildElements
// because we might be called during build, and context.visitChildElements // because we might be called during build, and context.visitChildElements
...@@ -132,11 +132,11 @@ class _AutomaticKeepAliveState extends State<AutomaticKeepAlive> { ...@@ -132,11 +132,11 @@ class _AutomaticKeepAliveState extends State<AutomaticKeepAlive> {
childElement = child; childElement = child;
}); });
assert(childElement == null || childElement is ParentDataElement<SliverWithKeepAliveWidget>); assert(childElement == null || childElement is ParentDataElement<SliverWithKeepAliveWidget>);
return childElement; return childElement as ParentDataElement<SliverWithKeepAliveWidget>;
} }
void _updateParentDataOfChild(ParentDataElement<SliverWithKeepAliveWidget> childElement) { void _updateParentDataOfChild(ParentDataElement<SliverWithKeepAliveWidget> childElement) {
childElement.applyWidgetOutOfTurn(build(context)); childElement.applyWidgetOutOfTurn(build(context) as ParentDataWidget<SliverWithKeepAliveWidget>);
} }
VoidCallback _createCallback(Listenable handle) { VoidCallback _createCallback(Listenable handle) {
......
...@@ -1931,7 +1931,7 @@ class LayoutId extends ParentDataWidget<CustomMultiChildLayout> { ...@@ -1931,7 +1931,7 @@ class LayoutId extends ParentDataWidget<CustomMultiChildLayout> {
@override @override
void applyParentData(RenderObject renderObject) { void applyParentData(RenderObject renderObject) {
assert(renderObject.parentData is MultiChildLayoutParentData); assert(renderObject.parentData is MultiChildLayoutParentData);
final MultiChildLayoutParentData parentData = renderObject.parentData; final MultiChildLayoutParentData parentData = renderObject.parentData as MultiChildLayoutParentData;
if (parentData.id != id) { if (parentData.id != id) {
parentData.id = id; parentData.id = id;
final AbstractNode targetParent = renderObject.parent; final AbstractNode targetParent = renderObject.parent;
...@@ -2659,7 +2659,7 @@ class _OffstageElement extends SingleChildRenderObjectElement { ...@@ -2659,7 +2659,7 @@ class _OffstageElement extends SingleChildRenderObjectElement {
_OffstageElement(Offstage widget) : super(widget); _OffstageElement(Offstage widget) : super(widget);
@override @override
Offstage get widget => super.widget; Offstage get widget => super.widget as Offstage;
@override @override
void debugVisitOnstageChildren(ElementVisitor visitor) { void debugVisitOnstageChildren(ElementVisitor visitor) {
...@@ -3528,7 +3528,7 @@ class Positioned extends ParentDataWidget<Stack> { ...@@ -3528,7 +3528,7 @@ class Positioned extends ParentDataWidget<Stack> {
@override @override
void applyParentData(RenderObject renderObject) { void applyParentData(RenderObject renderObject) {
assert(renderObject.parentData is StackParentData); assert(renderObject.parentData is StackParentData);
final StackParentData parentData = renderObject.parentData; final StackParentData parentData = renderObject.parentData as StackParentData;
bool needsLayout = false; bool needsLayout = false;
if (parentData.left != left) { if (parentData.left != left) {
...@@ -4384,7 +4384,7 @@ class Flexible extends ParentDataWidget<Flex> { ...@@ -4384,7 +4384,7 @@ class Flexible extends ParentDataWidget<Flex> {
@override @override
void applyParentData(RenderObject renderObject) { void applyParentData(RenderObject renderObject) {
assert(renderObject.parentData is FlexParentData); assert(renderObject.parentData is FlexParentData);
final FlexParentData parentData = renderObject.parentData; final FlexParentData parentData = renderObject.parentData as FlexParentData;
bool needsLayout = false; bool needsLayout = false;
if (parentData.flex != flex) { if (parentData.flex != flex) {
...@@ -5968,13 +5968,13 @@ class _MouseRegionElement extends SingleChildRenderObjectElement { ...@@ -5968,13 +5968,13 @@ class _MouseRegionElement extends SingleChildRenderObjectElement {
@override @override
void activate() { void activate() {
super.activate(); super.activate();
final RenderMouseRegion renderMouseRegion = renderObject; final RenderMouseRegion renderMouseRegion = renderObject as RenderMouseRegion;
renderMouseRegion.postActivate(); renderMouseRegion.postActivate();
} }
@override @override
void deactivate() { void deactivate() {
final RenderMouseRegion renderMouseRegion = renderObject; final RenderMouseRegion renderMouseRegion = renderObject as RenderMouseRegion;
renderMouseRegion.preDeactivate(); renderMouseRegion.preDeactivate();
super.deactivate(); super.deactivate();
} }
...@@ -6763,7 +6763,7 @@ class KeyedSubtree extends StatelessWidget { ...@@ -6763,7 +6763,7 @@ class KeyedSubtree extends StatelessWidget {
/// Wrap each item in a KeyedSubtree whose key is based on the item's existing key or /// Wrap each item in a KeyedSubtree whose key is based on the item's existing key or
/// the sum of its list index and `baseIndex`. /// the sum of its list index and `baseIndex`.
static List<Widget> ensureUniqueKeysForList(Iterable<Widget> items, { int baseIndex = 0 }) { static List<Widget> ensureUniqueKeysForList(List<Widget> items, { int baseIndex = 0 }) {
if (items == null || items.isEmpty) if (items == null || items.isEmpty)
return items; return items;
......
...@@ -535,7 +535,7 @@ mixin WidgetsBinding on BindingBase, ServicesBinding, SchedulerBinding, GestureB ...@@ -535,7 +535,7 @@ mixin WidgetsBinding on BindingBase, ServicesBinding, SchedulerBinding, GestureB
case 'popRoute': case 'popRoute':
return handlePopRoute(); return handlePopRoute();
case 'pushRoute': case 'pushRoute':
return handlePushRoute(methodCall.arguments); return handlePushRoute(methodCall.arguments as String);
} }
return Future<dynamic>.value(); return Future<dynamic>.value();
} }
...@@ -563,8 +563,8 @@ mixin WidgetsBinding on BindingBase, ServicesBinding, SchedulerBinding, GestureB ...@@ -563,8 +563,8 @@ mixin WidgetsBinding on BindingBase, ServicesBinding, SchedulerBinding, GestureB
@override @override
Future<void> handleSystemMessage(Object systemMessage) async { Future<void> handleSystemMessage(Object systemMessage) async {
await super.handleSystemMessage(systemMessage); await super.handleSystemMessage(systemMessage);
final Map<String, dynamic> message = systemMessage; final Map<String, dynamic> message = systemMessage as Map<String, dynamic>;
final String type = message['type']; final String type = message['type'] as String;
switch (type) { switch (type) {
case 'memoryPressure': case 'memoryPressure':
handleMemoryPressure(); handleMemoryPressure();
...@@ -821,7 +821,7 @@ mixin WidgetsBinding on BindingBase, ServicesBinding, SchedulerBinding, GestureB ...@@ -821,7 +821,7 @@ mixin WidgetsBinding on BindingBase, ServicesBinding, SchedulerBinding, GestureB
container: renderView, container: renderView,
debugShortDescription: '[root]', debugShortDescription: '[root]',
child: rootWidget, child: rootWidget,
).attachToRenderTree(buildOwner, renderViewElement); ).attachToRenderTree(buildOwner, renderViewElement as RenderObjectToWidgetElement<RenderBox>);
} }
/// Whether the [renderViewElement] has been initialized. /// Whether the [renderViewElement] has been initialized.
...@@ -976,7 +976,7 @@ class RenderObjectToWidgetElement<T extends RenderObject> extends RootRenderObje ...@@ -976,7 +976,7 @@ class RenderObjectToWidgetElement<T extends RenderObject> extends RootRenderObje
RenderObjectToWidgetElement(RenderObjectToWidgetAdapter<T> widget) : super(widget); RenderObjectToWidgetElement(RenderObjectToWidgetAdapter<T> widget) : super(widget);
@override @override
RenderObjectToWidgetAdapter<T> get widget => super.widget; RenderObjectToWidgetAdapter<T> get widget => super.widget as RenderObjectToWidgetAdapter<T>;
Element _child; Element _child;
...@@ -1019,7 +1019,7 @@ class RenderObjectToWidgetElement<T extends RenderObject> extends RootRenderObje ...@@ -1019,7 +1019,7 @@ class RenderObjectToWidgetElement<T extends RenderObject> extends RootRenderObje
// due to a reassemble. // due to a reassemble.
final Widget newWidget = _newWidget; final Widget newWidget = _newWidget;
_newWidget = null; _newWidget = null;
update(newWidget); update(newWidget as RenderObjectToWidgetAdapter<T>);
} }
super.performRebuild(); super.performRebuild();
assert(_newWidget == null); assert(_newWidget == null);
...@@ -1043,13 +1043,13 @@ class RenderObjectToWidgetElement<T extends RenderObject> extends RootRenderObje ...@@ -1043,13 +1043,13 @@ class RenderObjectToWidgetElement<T extends RenderObject> extends RootRenderObje
} }
@override @override
RenderObjectWithChildMixin<T> get renderObject => super.renderObject; RenderObjectWithChildMixin<T> get renderObject => super.renderObject as RenderObjectWithChildMixin<T>;
@override @override
void insertChildRenderObject(RenderObject child, dynamic slot) { void insertChildRenderObject(RenderObject child, dynamic slot) {
assert(slot == _rootChildSlot); assert(slot == _rootChildSlot);
assert(renderObject.debugValidateChild(child)); assert(renderObject.debugValidateChild(child));
renderObject.child = child; renderObject.child = child as T;
} }
@override @override
......
...@@ -55,6 +55,6 @@ class _ColorFilterRenderObject extends RenderProxyBox { ...@@ -55,6 +55,6 @@ class _ColorFilterRenderObject extends RenderProxyBox {
@override @override
void paint(PaintingContext context, Offset offset) { void paint(PaintingContext context, Offset offset) {
layer = context.pushColorFilter(offset, colorFilter, super.paint, oldLayer: layer); layer = context.pushColorFilter(offset, colorFilter, super.paint, oldLayer: layer as ColorFilterLayer);
} }
} }
...@@ -356,7 +356,7 @@ class _DraggableState<T> extends State<Draggable<T>> { ...@@ -356,7 +356,7 @@ class _DraggableState<T> extends State<Draggable<T>> {
_recognizer = null; _recognizer = null;
} }
void _routePointer(PointerEvent event) { void _routePointer(PointerDownEvent event) {
if (widget.maxSimultaneousDrags != null && _activeCount >= widget.maxSimultaneousDrags) if (widget.maxSimultaneousDrags != null && _activeCount >= widget.maxSimultaneousDrags)
return; return;
_recognizer.addPointer(event); _recognizer.addPointer(event);
...@@ -368,7 +368,7 @@ class _DraggableState<T> extends State<Draggable<T>> { ...@@ -368,7 +368,7 @@ class _DraggableState<T> extends State<Draggable<T>> {
Offset dragStartPoint; Offset dragStartPoint;
switch (widget.dragAnchor) { switch (widget.dragAnchor) {
case DragAnchor.child: case DragAnchor.child:
final RenderBox renderObject = context.findRenderObject(); final RenderBox renderObject = context.findRenderObject() as RenderBox;
dragStartPoint = renderObject.globalToLocal(position); dragStartPoint = renderObject.globalToLocal(position);
break; break;
case DragAnchor.pointer: case DragAnchor.pointer:
...@@ -519,7 +519,8 @@ class _DragTargetState<T> extends State<DragTarget<T>> { ...@@ -519,7 +519,8 @@ class _DragTargetState<T> extends State<DragTarget<T>> {
bool didEnter(_DragAvatar<dynamic> avatar) { bool didEnter(_DragAvatar<dynamic> avatar) {
assert(!_candidateAvatars.contains(avatar)); assert(!_candidateAvatars.contains(avatar));
assert(!_rejectedAvatars.contains(avatar)); assert(!_rejectedAvatars.contains(avatar));
if (avatar.data is T && (widget.onWillAccept == null || widget.onWillAccept(avatar.data))) { final dynamic data = avatar.data;
if (data is T && (widget.onWillAccept == null || widget.onWillAccept(data))) {
setState(() { setState(() {
_candidateAvatars.add(avatar); _candidateAvatars.add(avatar);
}); });
...@@ -670,10 +671,11 @@ class _DragAvatar<T> extends Drag { ...@@ -670,10 +671,11 @@ class _DragAvatar<T> extends Drag {
// Look for the RenderBoxes that corresponds to the hit target (the hit target // Look for the RenderBoxes that corresponds to the hit target (the hit target
// widgets build RenderMetaData boxes for us for this purpose). // widgets build RenderMetaData boxes for us for this purpose).
for (HitTestEntry entry in path) { for (HitTestEntry entry in path) {
if (entry.target is RenderMetaData) { final HitTestTarget target = entry.target;
final RenderMetaData renderMetaData = entry.target; if (target is RenderMetaData) {
if (renderMetaData.metaData is _DragTargetState<T>) final dynamic metaData = target.metaData;
yield renderMetaData.metaData; if (metaData is _DragTargetState<T>)
yield metaData;
} }
} }
} }
...@@ -701,7 +703,7 @@ class _DragAvatar<T> extends Drag { ...@@ -701,7 +703,7 @@ class _DragAvatar<T> extends Drag {
} }
Widget _build(BuildContext context) { Widget _build(BuildContext context) {
final RenderBox box = overlayState.context.findRenderObject(); final RenderBox box = overlayState.context.findRenderObject() as RenderBox;
final Offset overlayTopLeft = box.localToGlobal(Offset.zero); final Offset overlayTopLeft = box.localToGlobal(Offset.zero);
return Positioned( return Positioned(
left: _lastOffset.dx - overlayTopLeft.dx, left: _lastOffset.dx - overlayTopLeft.dx,
......
...@@ -260,7 +260,7 @@ class _DraggableSheetExtent { ...@@ -260,7 +260,7 @@ class _DraggableSheetExtent {
set currentExtent(double value) { set currentExtent(double value) {
assert(value != null); assert(value != null);
_currentExtent.value = value.clamp(minExtent, maxExtent); _currentExtent.value = value.clamp(minExtent, maxExtent) as double;
} }
double get currentExtent => _currentExtent.value; double get currentExtent => _currentExtent.value;
...@@ -599,7 +599,7 @@ class _InheritedResetNotifier extends InheritedNotifier<_ResetNotifier> { ...@@ -599,7 +599,7 @@ class _InheritedResetNotifier extends InheritedNotifier<_ResetNotifier> {
return false; return false;
} }
assert(widget is _InheritedResetNotifier); assert(widget is _InheritedResetNotifier);
final _InheritedResetNotifier inheritedNotifier = widget; final _InheritedResetNotifier inheritedNotifier = widget as _InheritedResetNotifier;
final bool wasCalled = inheritedNotifier.notifier._wasCalled; final bool wasCalled = inheritedNotifier.notifier._wasCalled;
inheritedNotifier.notifier._wasCalled = false; inheritedNotifier.notifier._wasCalled = false;
return wasCalled; return wasCalled;
......
...@@ -1375,7 +1375,7 @@ class EditableTextState extends State<EditableText> with AutomaticKeepAliveClien ...@@ -1375,7 +1375,7 @@ class EditableTextState extends State<EditableText> with AutomaticKeepAliveClien
// Clamp the final results to prevent programmatically scrolling to // Clamp the final results to prevent programmatically scrolling to
// out-of-paragraph-bounds positions when encountering tall fonts/scripts that // out-of-paragraph-bounds positions when encountering tall fonts/scripts that
// extend past the ascent. // extend past the ascent.
scrollOffset = scrollOffset.clamp(0.0, renderEditable.maxScrollExtent); scrollOffset = scrollOffset.clamp(0.0, renderEditable.maxScrollExtent) as double;
} }
return scrollOffset; return scrollOffset;
} }
...@@ -1744,7 +1744,7 @@ class EditableTextState extends State<EditableText> with AutomaticKeepAliveClien ...@@ -1744,7 +1744,7 @@ class EditableTextState extends State<EditableText> with AutomaticKeepAliveClien
/// ///
/// This property is typically used to notify the renderer of input gestures /// This property is typically used to notify the renderer of input gestures
/// when [ignorePointer] is true. See [RenderEditable.ignorePointer]. /// when [ignorePointer] is true. See [RenderEditable.ignorePointer].
RenderEditable get renderEditable => _editableKey.currentContext.findRenderObject(); RenderEditable get renderEditable => _editableKey.currentContext.findRenderObject() as RenderEditable;
@override @override
TextEditingValue get textEditingValue => _value; TextEditingValue get textEditingValue => _value;
......
...@@ -428,13 +428,13 @@ class _AnimatedFadeOutFadeInState extends ImplicitlyAnimatedWidgetState<_Animate ...@@ -428,13 +428,13 @@ class _AnimatedFadeOutFadeInState extends ImplicitlyAnimatedWidgetState<_Animate
_targetOpacity = visitor( _targetOpacity = visitor(
_targetOpacity, _targetOpacity,
widget.isTargetLoaded ? 1.0 : 0.0, widget.isTargetLoaded ? 1.0 : 0.0,
(dynamic value) => Tween<double>(begin: value), (dynamic value) => Tween<double>(begin: value as double),
); ) as Tween<double>;
_placeholderOpacity = visitor( _placeholderOpacity = visitor(
_placeholderOpacity, _placeholderOpacity,
widget.isTargetLoaded ? 0.0 : 1.0, widget.isTargetLoaded ? 0.0 : 1.0,
(dynamic value) => Tween<double>(begin: value), (dynamic value) => Tween<double>(begin: value as double),
); ) as Tween<double>;
} }
@override @override
......
...@@ -595,7 +595,7 @@ class FocusNode with DiagnosticableTreeMixin, ChangeNotifier { ...@@ -595,7 +595,7 @@ class FocusNode with DiagnosticableTreeMixin, ChangeNotifier {
/// ///
/// Use [nearestScope] to start at this node instead of above it. /// Use [nearestScope] to start at this node instead of above it.
FocusScopeNode get enclosingScope { FocusScopeNode get enclosingScope {
return ancestors.firstWhere((FocusNode node) => node is FocusScopeNode, orElse: () => null); return ancestors.firstWhere((FocusNode node) => node is FocusScopeNode, orElse: () => null) as FocusScopeNode;
} }
/// Returns the size of the attached widget's [RenderObject], in logical /// Returns the size of the attached widget's [RenderObject], in logical
...@@ -1040,7 +1040,7 @@ class FocusScopeNode extends FocusNode { ...@@ -1040,7 +1040,7 @@ class FocusScopeNode extends FocusNode {
// found, a scope doesn't have a focusedChild, or a non-scope is // found, a scope doesn't have a focusedChild, or a non-scope is
// encountered. // encountered.
while (primaryFocus is FocusScopeNode && primaryFocus.focusedChild != null) { while (primaryFocus is FocusScopeNode && primaryFocus.focusedChild != null) {
final FocusScopeNode scope = primaryFocus; final FocusScopeNode scope = primaryFocus as FocusScopeNode;
primaryFocus = scope.focusedChild; primaryFocus = scope.focusedChild;
} }
if (identical(primaryFocus, this)) { if (identical(primaryFocus, this)) {
...@@ -1426,7 +1426,7 @@ class FocusManager with DiagnosticableTreeMixin { ...@@ -1426,7 +1426,7 @@ class FocusManager with DiagnosticableTreeMixin {
properties.add(FlagProperty('haveScheduledUpdate', value: _haveScheduledUpdate, ifTrue: 'UPDATE SCHEDULED')); properties.add(FlagProperty('haveScheduledUpdate', value: _haveScheduledUpdate, ifTrue: 'UPDATE SCHEDULED'));
properties.add(DiagnosticsProperty<FocusNode>('primaryFocus', primaryFocus, defaultValue: null)); properties.add(DiagnosticsProperty<FocusNode>('primaryFocus', primaryFocus, defaultValue: null));
properties.add(DiagnosticsProperty<FocusNode>('nextFocus', _nextFocus, defaultValue: null)); properties.add(DiagnosticsProperty<FocusNode>('nextFocus', _nextFocus, defaultValue: null));
final Element element = primaryFocus?.context; final Element element = primaryFocus?.context as Element;
if (element != null) { if (element != null) {
properties.add(DiagnosticsProperty<String>('primaryFocusCreator', element.debugGetCreatorChain(20))); properties.add(DiagnosticsProperty<String>('primaryFocusCreator', element.debugGetCreatorChain(20)));
} }
......
...@@ -587,7 +587,7 @@ class WidgetOrderFocusTraversalPolicy extends FocusTraversalPolicy with Directio ...@@ -587,7 +587,7 @@ class WidgetOrderFocusTraversalPolicy extends FocusTraversalPolicy with Directio
} }
} }
while (candidate is FocusScopeNode && candidate.focusedChild != null) { while (candidate is FocusScopeNode && candidate.focusedChild != null) {
final FocusScopeNode candidateScope = candidate; final FocusScopeNode candidateScope = candidate as FocusScopeNode;
candidate = candidateScope.focusedChild; candidate = candidateScope.focusedChild;
} }
return candidate; return candidate;
......
...@@ -954,7 +954,7 @@ class RawGestureDetectorState extends State<RawGestureDetector> { ...@@ -954,7 +954,7 @@ class RawGestureDetectorState extends State<RawGestureDetector> {
}()); }());
_syncAll(gestures); _syncAll(gestures);
if (!widget.excludeFromSemantics) { if (!widget.excludeFromSemantics) {
final RenderSemanticsGestureHandler semanticsGestureHandler = context.findRenderObject(); final RenderSemanticsGestureHandler semanticsGestureHandler = context.findRenderObject() as RenderSemanticsGestureHandler;
_updateSemanticsForRenderObject(semanticsGestureHandler); _updateSemanticsForRenderObject(semanticsGestureHandler);
} }
} }
...@@ -974,7 +974,7 @@ class RawGestureDetectorState extends State<RawGestureDetector> { ...@@ -974,7 +974,7 @@ class RawGestureDetectorState extends State<RawGestureDetector> {
if (widget.excludeFromSemantics) if (widget.excludeFromSemantics)
return; return;
final RenderSemanticsGestureHandler semanticsGestureHandler = context.findRenderObject(); final RenderSemanticsGestureHandler semanticsGestureHandler = context.findRenderObject() as RenderSemanticsGestureHandler;
assert(() { assert(() {
if (semanticsGestureHandler == null) { if (semanticsGestureHandler == null) {
throw FlutterError( throw FlutterError(
...@@ -1135,7 +1135,7 @@ class _DefaultSemanticsGestureDelegate extends SemanticsGestureDelegate { ...@@ -1135,7 +1135,7 @@ class _DefaultSemanticsGestureDelegate extends SemanticsGestureDelegate {
} }
GestureTapCallback _getTapHandler(Map<Type, GestureRecognizer> recognizers) { GestureTapCallback _getTapHandler(Map<Type, GestureRecognizer> recognizers) {
final TapGestureRecognizer tap = recognizers[TapGestureRecognizer]; final TapGestureRecognizer tap = recognizers[TapGestureRecognizer] as TapGestureRecognizer;
if (tap == null) if (tap == null)
return null; return null;
assert(tap is TapGestureRecognizer); assert(tap is TapGestureRecognizer);
...@@ -1152,7 +1152,7 @@ class _DefaultSemanticsGestureDelegate extends SemanticsGestureDelegate { ...@@ -1152,7 +1152,7 @@ class _DefaultSemanticsGestureDelegate extends SemanticsGestureDelegate {
} }
GestureLongPressCallback _getLongPressHandler(Map<Type, GestureRecognizer> recognizers) { GestureLongPressCallback _getLongPressHandler(Map<Type, GestureRecognizer> recognizers) {
final LongPressGestureRecognizer longPress = recognizers[LongPressGestureRecognizer]; final LongPressGestureRecognizer longPress = recognizers[LongPressGestureRecognizer] as LongPressGestureRecognizer;
if (longPress == null) if (longPress == null)
return null; return null;
...@@ -1170,8 +1170,8 @@ class _DefaultSemanticsGestureDelegate extends SemanticsGestureDelegate { ...@@ -1170,8 +1170,8 @@ class _DefaultSemanticsGestureDelegate extends SemanticsGestureDelegate {
} }
GestureDragUpdateCallback _getHorizontalDragUpdateHandler(Map<Type, GestureRecognizer> recognizers) { GestureDragUpdateCallback _getHorizontalDragUpdateHandler(Map<Type, GestureRecognizer> recognizers) {
final HorizontalDragGestureRecognizer horizontal = recognizers[HorizontalDragGestureRecognizer]; final HorizontalDragGestureRecognizer horizontal = recognizers[HorizontalDragGestureRecognizer] as HorizontalDragGestureRecognizer;
final PanGestureRecognizer pan = recognizers[PanGestureRecognizer]; final PanGestureRecognizer pan = recognizers[PanGestureRecognizer] as PanGestureRecognizer;
final GestureDragUpdateCallback horizontalHandler = horizontal == null ? final GestureDragUpdateCallback horizontalHandler = horizontal == null ?
null : null :
...@@ -1212,8 +1212,8 @@ class _DefaultSemanticsGestureDelegate extends SemanticsGestureDelegate { ...@@ -1212,8 +1212,8 @@ class _DefaultSemanticsGestureDelegate extends SemanticsGestureDelegate {
} }
GestureDragUpdateCallback _getVerticalDragUpdateHandler(Map<Type, GestureRecognizer> recognizers) { GestureDragUpdateCallback _getVerticalDragUpdateHandler(Map<Type, GestureRecognizer> recognizers) {
final VerticalDragGestureRecognizer vertical = recognizers[VerticalDragGestureRecognizer]; final VerticalDragGestureRecognizer vertical = recognizers[VerticalDragGestureRecognizer] as VerticalDragGestureRecognizer;
final PanGestureRecognizer pan = recognizers[PanGestureRecognizer]; final PanGestureRecognizer pan = recognizers[PanGestureRecognizer] as PanGestureRecognizer;
final GestureDragUpdateCallback verticalHandler = vertical == null ? final GestureDragUpdateCallback verticalHandler = vertical == null ?
null : null :
......
...@@ -73,7 +73,7 @@ enum HeroFlightDirection { ...@@ -73,7 +73,7 @@ enum HeroFlightDirection {
// The bounding box for context in ancestorContext coordinate system, or in the global // The bounding box for context in ancestorContext coordinate system, or in the global
// coordinate system when null. // coordinate system when null.
Rect _boundingBoxFor(BuildContext context, [BuildContext ancestorContext]) { Rect _boundingBoxFor(BuildContext context, [BuildContext ancestorContext]) {
final RenderBox box = context.findRenderObject(); final RenderBox box = context.findRenderObject() as RenderBox;
assert(box != null && box.hasSize); assert(box != null && box.hasSize);
return MatrixUtils.transformRect( return MatrixUtils.transformRect(
box.getTransformTo(ancestorContext?.findRenderObject()), box.getTransformTo(ancestorContext?.findRenderObject()),
...@@ -274,8 +274,8 @@ class Hero extends StatefulWidget { ...@@ -274,8 +274,8 @@ class Hero extends StatefulWidget {
} }
return true; return true;
}()); }());
final Hero heroWidget = hero.widget; final Hero heroWidget = hero.widget as Hero;
final _HeroState heroState = hero.state; final _HeroState heroState = hero.state as _HeroState;
if (!isUserGestureTransition || heroWidget.transitionOnUserGestures) { if (!isUserGestureTransition || heroWidget.transitionOnUserGestures) {
result[tag] = heroState; result[tag] = heroState;
} else { } else {
...@@ -286,10 +286,10 @@ class Hero extends StatefulWidget { ...@@ -286,10 +286,10 @@ class Hero extends StatefulWidget {
} }
void visitor(Element element) { void visitor(Element element) {
if (element.widget is Hero) { final Widget widget = element.widget;
final StatefulElement hero = element; if (widget is Hero) {
final Hero heroWidget = element.widget; final StatefulElement hero = element as StatefulElement;
final Object tag = heroWidget.tag; final Object tag = widget.tag;
assert(tag != null); assert(tag != null);
if (Navigator.of(hero) == navigator) { if (Navigator.of(hero) == navigator) {
inviteHero(hero, tag); inviteHero(hero, tag);
...@@ -344,7 +344,7 @@ class _HeroState extends State<Hero> { ...@@ -344,7 +344,7 @@ class _HeroState extends State<Hero> {
void startFlight({ bool shouldIncludedChildInPlaceholder = false }) { void startFlight({ bool shouldIncludedChildInPlaceholder = false }) {
_shouldIncludeChild = shouldIncludedChildInPlaceholder; _shouldIncludeChild = shouldIncludedChildInPlaceholder;
assert(mounted); assert(mounted);
final RenderBox box = context.findRenderObject(); final RenderBox box = context.findRenderObject() as RenderBox;
assert(box != null && box.hasSize); assert(box != null && box.hasSize);
setState(() { setState(() {
_placeholderSize = box.size; _placeholderSize = box.size;
...@@ -489,7 +489,7 @@ class _HeroFlight { ...@@ -489,7 +489,7 @@ class _HeroFlight {
animation: _proxyAnimation, animation: _proxyAnimation,
child: shuttle, child: shuttle,
builder: (BuildContext context, Widget child) { builder: (BuildContext context, Widget child) {
final RenderBox toHeroBox = manifest.toHero.context?.findRenderObject(); final RenderBox toHeroBox = manifest.toHero.context?.findRenderObject() as RenderBox;
if (_aborted || toHeroBox == null || !toHeroBox.attached) { if (_aborted || toHeroBox == null || !toHeroBox.attached) {
// The toHero no longer exists or it's no longer the flight's destination. // The toHero no longer exists or it's no longer the flight's destination.
// Continue flying while fading out. // Continue flying while fading out.
...@@ -501,7 +501,7 @@ class _HeroFlight { ...@@ -501,7 +501,7 @@ class _HeroFlight {
} else if (toHeroBox.hasSize) { } else if (toHeroBox.hasSize) {
// The toHero has been laid out. If it's no longer where the hero animation is // The toHero has been laid out. If it's no longer where the hero animation is
// supposed to end up then recreate the heroRect tween. // supposed to end up then recreate the heroRect tween.
final RenderBox finalRouteBox = manifest.toRoute.subtreeContext?.findRenderObject(); final RenderBox finalRouteBox = manifest.toRoute.subtreeContext?.findRenderObject() as RenderBox;
final Offset toHeroOrigin = toHeroBox.localToGlobal(Offset.zero, ancestor: finalRouteBox); final Offset toHeroOrigin = toHeroBox.localToGlobal(Offset.zero, ancestor: finalRouteBox);
if (toHeroOrigin != heroRectTween.end.topLeft) { if (toHeroOrigin != heroRectTween.end.topLeft) {
final Rect heroRectEnd = toHeroOrigin & heroRectTween.end.size; final Rect heroRectEnd = toHeroOrigin & heroRectTween.end.size;
...@@ -882,7 +882,7 @@ class HeroController extends NavigatorObserver { ...@@ -882,7 +882,7 @@ class HeroController extends NavigatorObserver {
BuildContext fromHeroContext, BuildContext fromHeroContext,
BuildContext toHeroContext, BuildContext toHeroContext,
) { ) {
final Hero toHero = toHeroContext.widget; final Hero toHero = toHeroContext.widget as Hero;
return toHero.child; return toHero.child;
}; };
} }
...@@ -53,11 +53,11 @@ class IconData { ...@@ -53,11 +53,11 @@ class IconData {
bool operator ==(dynamic other) { bool operator ==(dynamic other) {
if (runtimeType != other.runtimeType) if (runtimeType != other.runtimeType)
return false; return false;
final IconData typedOther = other; return other is IconData
return codePoint == typedOther.codePoint && other.codePoint == codePoint
&& fontFamily == typedOther.fontFamily && other.fontFamily == fontFamily
&& fontPackage == typedOther.fontPackage && other.fontPackage == fontPackage
&& matchTextDirection == typedOther.matchTextDirection; && other.matchTextDirection == matchTextDirection;
} }
@override @override
......
...@@ -81,7 +81,7 @@ class IconThemeData extends Diagnosticable { ...@@ -81,7 +81,7 @@ class IconThemeData extends Diagnosticable {
final Color color; final Color color;
/// An opacity to apply to both explicit and default icon colors. /// An opacity to apply to both explicit and default icon colors.
double get opacity => _opacity?.clamp(0.0, 1.0); double get opacity => _opacity?.clamp(0.0, 1.0) as double;
final double _opacity; final double _opacity;
/// The default size for icons. /// The default size for icons.
...@@ -103,10 +103,10 @@ class IconThemeData extends Diagnosticable { ...@@ -103,10 +103,10 @@ class IconThemeData extends Diagnosticable {
bool operator ==(dynamic other) { bool operator ==(dynamic other) {
if (other.runtimeType != runtimeType) if (other.runtimeType != runtimeType)
return false; return false;
final IconThemeData typedOther = other; return other is IconThemeData
return color == typedOther.color && other.color == color
&& opacity == typedOther.opacity && other.opacity == opacity
&& size == typedOther.size; && other.size == size;
} }
@override @override
......
...@@ -740,13 +740,13 @@ class _AnimatedContainerState extends AnimatedWidgetBaseState<AnimatedContainer> ...@@ -740,13 +740,13 @@ class _AnimatedContainerState extends AnimatedWidgetBaseState<AnimatedContainer>
@override @override
void forEachTween(TweenVisitor<dynamic> visitor) { void forEachTween(TweenVisitor<dynamic> visitor) {
_alignment = visitor(_alignment, widget.alignment, (dynamic value) => AlignmentGeometryTween(begin: value)); _alignment = visitor(_alignment, widget.alignment, (dynamic value) => AlignmentGeometryTween(begin: value as AlignmentGeometry)) as AlignmentGeometryTween;
_padding = visitor(_padding, widget.padding, (dynamic value) => EdgeInsetsGeometryTween(begin: value)); _padding = visitor(_padding, widget.padding, (dynamic value) => EdgeInsetsGeometryTween(begin: value as EdgeInsetsGeometry)) as EdgeInsetsGeometryTween;
_decoration = visitor(_decoration, widget.decoration, (dynamic value) => DecorationTween(begin: value)); _decoration = visitor(_decoration, widget.decoration, (dynamic value) => DecorationTween(begin: value as Decoration)) as DecorationTween;
_foregroundDecoration = visitor(_foregroundDecoration, widget.foregroundDecoration, (dynamic value) => DecorationTween(begin: value)); _foregroundDecoration = visitor(_foregroundDecoration, widget.foregroundDecoration, (dynamic value) => DecorationTween(begin: value as Decoration)) as DecorationTween;
_constraints = visitor(_constraints, widget.constraints, (dynamic value) => BoxConstraintsTween(begin: value)); _constraints = visitor(_constraints, widget.constraints, (dynamic value) => BoxConstraintsTween(begin: value as BoxConstraints)) as BoxConstraintsTween;
_margin = visitor(_margin, widget.margin, (dynamic value) => EdgeInsetsGeometryTween(begin: value)); _margin = visitor(_margin, widget.margin, (dynamic value) => EdgeInsetsGeometryTween(begin: value as EdgeInsetsGeometry)) as EdgeInsetsGeometryTween;
_transform = visitor(_transform, widget.transform, (dynamic value) => Matrix4Tween(begin: value)); _transform = visitor(_transform, widget.transform, (dynamic value) => Matrix4Tween(begin: value as Matrix4)) as Matrix4Tween;
} }
@override @override
...@@ -829,7 +829,7 @@ class _AnimatedPaddingState extends AnimatedWidgetBaseState<AnimatedPadding> { ...@@ -829,7 +829,7 @@ class _AnimatedPaddingState extends AnimatedWidgetBaseState<AnimatedPadding> {
@override @override
void forEachTween(TweenVisitor<dynamic> visitor) { void forEachTween(TweenVisitor<dynamic> visitor) {
_padding = visitor(_padding, widget.padding, (dynamic value) => EdgeInsetsGeometryTween(begin: value)); _padding = visitor(_padding, widget.padding, (dynamic value) => EdgeInsetsGeometryTween(begin: value as EdgeInsetsGeometry)) as EdgeInsetsGeometryTween;
} }
@override @override
...@@ -923,7 +923,7 @@ class _AnimatedAlignState extends AnimatedWidgetBaseState<AnimatedAlign> { ...@@ -923,7 +923,7 @@ class _AnimatedAlignState extends AnimatedWidgetBaseState<AnimatedAlign> {
@override @override
void forEachTween(TweenVisitor<dynamic> visitor) { void forEachTween(TweenVisitor<dynamic> visitor) {
_alignment = visitor(_alignment, widget.alignment, (dynamic value) => AlignmentGeometryTween(begin: value)); _alignment = visitor(_alignment, widget.alignment, (dynamic value) => AlignmentGeometryTween(begin: value as AlignmentGeometry)) as AlignmentGeometryTween;
} }
@override @override
...@@ -1069,12 +1069,12 @@ class _AnimatedPositionedState extends AnimatedWidgetBaseState<AnimatedPositione ...@@ -1069,12 +1069,12 @@ class _AnimatedPositionedState extends AnimatedWidgetBaseState<AnimatedPositione
@override @override
void forEachTween(TweenVisitor<dynamic> visitor) { void forEachTween(TweenVisitor<dynamic> visitor) {
_left = visitor(_left, widget.left, (dynamic value) => Tween<double>(begin: value)); _left = visitor(_left, widget.left, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
_top = visitor(_top, widget.top, (dynamic value) => Tween<double>(begin: value)); _top = visitor(_top, widget.top, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
_right = visitor(_right, widget.right, (dynamic value) => Tween<double>(begin: value)); _right = visitor(_right, widget.right, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
_bottom = visitor(_bottom, widget.bottom, (dynamic value) => Tween<double>(begin: value)); _bottom = visitor(_bottom, widget.bottom, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
_width = visitor(_width, widget.width, (dynamic value) => Tween<double>(begin: value)); _width = visitor(_width, widget.width, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
_height = visitor(_height, widget.height, (dynamic value) => Tween<double>(begin: value)); _height = visitor(_height, widget.height, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
} }
@override @override
...@@ -1204,12 +1204,12 @@ class _AnimatedPositionedDirectionalState extends AnimatedWidgetBaseState<Animat ...@@ -1204,12 +1204,12 @@ class _AnimatedPositionedDirectionalState extends AnimatedWidgetBaseState<Animat
@override @override
void forEachTween(TweenVisitor<dynamic> visitor) { void forEachTween(TweenVisitor<dynamic> visitor) {
_start = visitor(_start, widget.start, (dynamic value) => Tween<double>(begin: value)); _start = visitor(_start, widget.start, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
_top = visitor(_top, widget.top, (dynamic value) => Tween<double>(begin: value)); _top = visitor(_top, widget.top, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
_end = visitor(_end, widget.end, (dynamic value) => Tween<double>(begin: value)); _end = visitor(_end, widget.end, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
_bottom = visitor(_bottom, widget.bottom, (dynamic value) => Tween<double>(begin: value)); _bottom = visitor(_bottom, widget.bottom, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
_width = visitor(_width, widget.width, (dynamic value) => Tween<double>(begin: value)); _width = visitor(_width, widget.width, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
_height = visitor(_height, widget.height, (dynamic value) => Tween<double>(begin: value)); _height = visitor(_height, widget.height, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
} }
@override @override
...@@ -1348,7 +1348,7 @@ class _AnimatedOpacityState extends ImplicitlyAnimatedWidgetState<AnimatedOpacit ...@@ -1348,7 +1348,7 @@ class _AnimatedOpacityState extends ImplicitlyAnimatedWidgetState<AnimatedOpacit
@override @override
void forEachTween(TweenVisitor<dynamic> visitor) { void forEachTween(TweenVisitor<dynamic> visitor) {
_opacity = visitor(_opacity, widget.opacity, (dynamic value) => Tween<double>(begin: value)); _opacity = visitor(_opacity, widget.opacity, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
} }
@override @override
...@@ -1463,7 +1463,7 @@ class _AnimatedDefaultTextStyleState extends AnimatedWidgetBaseState<AnimatedDef ...@@ -1463,7 +1463,7 @@ class _AnimatedDefaultTextStyleState extends AnimatedWidgetBaseState<AnimatedDef
@override @override
void forEachTween(TweenVisitor<dynamic> visitor) { void forEachTween(TweenVisitor<dynamic> visitor) {
_style = visitor(_style, widget.style, (dynamic value) => TextStyleTween(begin: value)); _style = visitor(_style, widget.style, (dynamic value) => TextStyleTween(begin: value as TextStyle)) as TextStyleTween;
} }
@override @override
...@@ -1588,10 +1588,10 @@ class _AnimatedPhysicalModelState extends AnimatedWidgetBaseState<AnimatedPhysic ...@@ -1588,10 +1588,10 @@ class _AnimatedPhysicalModelState extends AnimatedWidgetBaseState<AnimatedPhysic
@override @override
void forEachTween(TweenVisitor<dynamic> visitor) { void forEachTween(TweenVisitor<dynamic> visitor) {
_borderRadius = visitor(_borderRadius, widget.borderRadius, (dynamic value) => BorderRadiusTween(begin: value)); _borderRadius = visitor(_borderRadius, widget.borderRadius, (dynamic value) => BorderRadiusTween(begin: value as BorderRadius)) as BorderRadiusTween;
_elevation = visitor(_elevation, widget.elevation, (dynamic value) => Tween<double>(begin: value)); _elevation = visitor(_elevation, widget.elevation, (dynamic value) => Tween<double>(begin: value as double)) as Tween<double>;
_color = visitor(_color, widget.color, (dynamic value) => ColorTween(begin: value)); _color = visitor(_color, widget.color, (dynamic value) => ColorTween(begin: value as Color)) as ColorTween;
_shadowColor = visitor(_shadowColor, widget.shadowColor, (dynamic value) => ColorTween(begin: value)); _shadowColor = visitor(_shadowColor, widget.shadowColor, (dynamic value) => ColorTween(begin: value as Color)) as ColorTween;
} }
@override @override
......
...@@ -127,7 +127,7 @@ abstract class InheritedModel<T> extends InheritedWidget { ...@@ -127,7 +127,7 @@ abstract class InheritedModel<T> extends InheritedWidget {
results.add(model); results.add(model);
assert(model.widget is T); assert(model.widget is T);
final T modelWidget = model.widget; final T modelWidget = model.widget as T;
if (modelWidget.isSupportedAspect(aspect)) if (modelWidget.isSupportedAspect(aspect))
return; return;
...@@ -171,7 +171,7 @@ abstract class InheritedModel<T> extends InheritedWidget { ...@@ -171,7 +171,7 @@ abstract class InheritedModel<T> extends InheritedWidget {
final InheritedElement lastModel = models.last; final InheritedElement lastModel = models.last;
for (InheritedElement model in models) { for (InheritedElement model in models) {
final T value = context.dependOnInheritedElement(model, aspect: aspect); final T value = context.dependOnInheritedElement(model, aspect: aspect) as T;
if (model == lastModel) if (model == lastModel)
return value; return value;
} }
...@@ -187,11 +187,11 @@ class InheritedModelElement<T> extends InheritedElement { ...@@ -187,11 +187,11 @@ class InheritedModelElement<T> extends InheritedElement {
InheritedModelElement(InheritedModel<T> widget) : super(widget); InheritedModelElement(InheritedModel<T> widget) : super(widget);
@override @override
InheritedModel<T> get widget => super.widget; InheritedModel<T> get widget => super.widget as InheritedModel<T>;
@override @override
void updateDependencies(Element dependent, Object aspect) { void updateDependencies(Element dependent, Object aspect) {
final Set<T> dependencies = getDependencies(dependent); final Set<T> dependencies = getDependencies(dependent) as Set<T>;
if (dependencies != null && dependencies.isEmpty) if (dependencies != null && dependencies.isEmpty)
return; return;
...@@ -199,13 +199,13 @@ class InheritedModelElement<T> extends InheritedElement { ...@@ -199,13 +199,13 @@ class InheritedModelElement<T> extends InheritedElement {
setDependencies(dependent, HashSet<T>()); setDependencies(dependent, HashSet<T>());
} else { } else {
assert(aspect is T); assert(aspect is T);
setDependencies(dependent, (dependencies ?? HashSet<T>())..add(aspect)); setDependencies(dependent, (dependencies ?? HashSet<T>())..add(aspect as T));
} }
} }
@override @override
void notifyDependent(InheritedModel<T> oldWidget, Element dependent) { void notifyDependent(InheritedModel<T> oldWidget, Element dependent) {
final Set<T> dependencies = getDependencies(dependent); final Set<T> dependencies = getDependencies(dependent) as Set<T>;
if (dependencies == null) if (dependencies == null)
return; return;
if (dependencies.isEmpty || widget.updateShouldNotifyDependent(oldWidget, dependencies)) if (dependencies.isEmpty || widget.updateShouldNotifyDependent(oldWidget, dependencies))
......
...@@ -79,7 +79,7 @@ class _InheritedNotifierElement<T extends Listenable> extends InheritedElement { ...@@ -79,7 +79,7 @@ class _InheritedNotifierElement<T extends Listenable> extends InheritedElement {
} }
@override @override
InheritedNotifier<T> get widget => super.widget; InheritedNotifier<T> get widget => super.widget as InheritedNotifier<T>;
bool _dirty = false; bool _dirty = false;
......
...@@ -117,7 +117,7 @@ abstract class InheritedTheme extends InheritedWidget { ...@@ -117,7 +117,7 @@ abstract class InheritedTheme extends InheritedWidget {
final Set<Type> themeTypes = <Type>{}; final Set<Type> themeTypes = <Type>{};
context.visitAncestorElements((Element ancestor) { context.visitAncestorElements((Element ancestor) {
if (ancestor is InheritedElement && ancestor.widget is InheritedTheme) { if (ancestor is InheritedElement && ancestor.widget is InheritedTheme) {
final InheritedTheme theme = ancestor.widget; final InheritedTheme theme = ancestor.widget as InheritedTheme;
final Type themeType = theme.runtimeType; final Type themeType = theme.runtimeType;
// Only remember the first theme of any type. This assumes // Only remember the first theme of any type. This assumes
// that inherited themes completely shadow ancestors of the // that inherited themes completely shadow ancestors of the
......
...@@ -43,10 +43,10 @@ class _LayoutBuilderElement<ConstraintType extends Constraints> extends RenderOb ...@@ -43,10 +43,10 @@ class _LayoutBuilderElement<ConstraintType extends Constraints> extends RenderOb
_LayoutBuilderElement(ConstrainedLayoutBuilder<ConstraintType> widget) : super(widget); _LayoutBuilderElement(ConstrainedLayoutBuilder<ConstraintType> widget) : super(widget);
@override @override
ConstrainedLayoutBuilder<ConstraintType> get widget => super.widget; ConstrainedLayoutBuilder<ConstraintType> get widget => super.widget as ConstrainedLayoutBuilder<ConstraintType>;
@override @override
RenderConstrainedLayoutBuilder<ConstraintType, RenderObject> get renderObject => super.renderObject; RenderConstrainedLayoutBuilder<ConstraintType, RenderObject> get renderObject => super.renderObject as RenderConstrainedLayoutBuilder<ConstraintType, RenderObject>;
Element _child; Element _child;
......
...@@ -245,7 +245,7 @@ class FixedExtentScrollController extends ScrollController { ...@@ -245,7 +245,7 @@ class FixedExtentScrollController extends ScrollController {
'The selectedItem property cannot be read when multiple scroll views are ' 'The selectedItem property cannot be read when multiple scroll views are '
'attached to the same FixedExtentScrollController.', 'attached to the same FixedExtentScrollController.',
); );
final _FixedExtentScrollPosition position = this.position; final _FixedExtentScrollPosition position = this.position as _FixedExtentScrollPosition;
return position.itemIndex; return position.itemIndex;
} }
...@@ -265,7 +265,7 @@ class FixedExtentScrollController extends ScrollController { ...@@ -265,7 +265,7 @@ class FixedExtentScrollController extends ScrollController {
} }
await Future.wait<void>(<Future<void>>[ await Future.wait<void>(<Future<void>>[
for (_FixedExtentScrollPosition position in positions) for (_FixedExtentScrollPosition position in positions.cast<_FixedExtentScrollPosition>())
position.animateTo( position.animateTo(
itemIndex * position.itemExtent, itemIndex * position.itemExtent,
duration: duration, duration: duration,
...@@ -279,7 +279,7 @@ class FixedExtentScrollController extends ScrollController { ...@@ -279,7 +279,7 @@ class FixedExtentScrollController extends ScrollController {
/// Jumps the item index position from its current value to the given value, /// Jumps the item index position from its current value to the given value,
/// without animation, and without checking if the new value is in range. /// without animation, and without checking if the new value is in range.
void jumpToItem(int itemIndex) { void jumpToItem(int itemIndex) {
for (_FixedExtentScrollPosition position in positions) { for (_FixedExtentScrollPosition position in positions.cast<_FixedExtentScrollPosition>()) {
position.jumpTo(itemIndex * position.itemExtent); position.jumpTo(itemIndex * position.itemExtent);
} }
} }
...@@ -386,7 +386,7 @@ class _FixedExtentScrollPosition extends ScrollPositionWithSingleContext impleme ...@@ -386,7 +386,7 @@ class _FixedExtentScrollPosition extends ScrollPositionWithSingleContext impleme
); );
static double _getItemExtentFromScrollContext(ScrollContext context) { static double _getItemExtentFromScrollContext(ScrollContext context) {
final _FixedExtentScrollableState scrollable = context; final _FixedExtentScrollableState scrollable = context as _FixedExtentScrollableState;
return scrollable.itemExtent; return scrollable.itemExtent;
} }
...@@ -451,7 +451,7 @@ class _FixedExtentScrollable extends Scrollable { ...@@ -451,7 +451,7 @@ class _FixedExtentScrollable extends Scrollable {
class _FixedExtentScrollableState extends ScrollableState { class _FixedExtentScrollableState extends ScrollableState {
double get itemExtent { double get itemExtent {
// Downcast because only _FixedExtentScrollable can make _FixedExtentScrollableState. // Downcast because only _FixedExtentScrollable can make _FixedExtentScrollableState.
final _FixedExtentScrollable actualWidget = widget; final _FixedExtentScrollable actualWidget = widget as _FixedExtentScrollable;
return actualWidget.itemExtent; return actualWidget.itemExtent;
} }
} }
...@@ -483,7 +483,7 @@ class FixedExtentScrollPhysics extends ScrollPhysics { ...@@ -483,7 +483,7 @@ class FixedExtentScrollPhysics extends ScrollPhysics {
'the FixedExtentScrollController' 'the FixedExtentScrollController'
); );
final _FixedExtentScrollPosition metrics = position; final _FixedExtentScrollPosition metrics = position as _FixedExtentScrollPosition;
// Scenario 1: // Scenario 1:
// If we're out of range and not headed back in range, defer to the parent // If we're out of range and not headed back in range, defer to the parent
...@@ -711,7 +711,7 @@ class _ListWheelScrollViewState extends State<ListWheelScrollView> { ...@@ -711,7 +711,7 @@ class _ListWheelScrollViewState extends State<ListWheelScrollView> {
super.initState(); super.initState();
scrollController = widget.controller ?? FixedExtentScrollController(); scrollController = widget.controller ?? FixedExtentScrollController();
if (widget.controller is FixedExtentScrollController) { if (widget.controller is FixedExtentScrollController) {
final FixedExtentScrollController controller = widget.controller; final FixedExtentScrollController controller = widget.controller as FixedExtentScrollController;
_lastReportedItemIndex = controller.initialItem; _lastReportedItemIndex = controller.initialItem;
} }
} }
...@@ -736,7 +736,7 @@ class _ListWheelScrollViewState extends State<ListWheelScrollView> { ...@@ -736,7 +736,7 @@ class _ListWheelScrollViewState extends State<ListWheelScrollView> {
&& widget.onSelectedItemChanged != null && widget.onSelectedItemChanged != null
&& notification is ScrollUpdateNotification && notification is ScrollUpdateNotification
&& notification.metrics is FixedExtentMetrics) { && notification.metrics is FixedExtentMetrics) {
final FixedExtentMetrics metrics = notification.metrics; final FixedExtentMetrics metrics = notification.metrics as FixedExtentMetrics;
final int currentItemIndex = metrics.itemIndex; final int currentItemIndex = metrics.itemIndex;
if (currentItemIndex != _lastReportedItemIndex) { if (currentItemIndex != _lastReportedItemIndex) {
_lastReportedItemIndex = currentItemIndex; _lastReportedItemIndex = currentItemIndex;
...@@ -776,10 +776,10 @@ class ListWheelElement extends RenderObjectElement implements ListWheelChildMana ...@@ -776,10 +776,10 @@ class ListWheelElement extends RenderObjectElement implements ListWheelChildMana
ListWheelElement(ListWheelViewport widget) : super(widget); ListWheelElement(ListWheelViewport widget) : super(widget);
@override @override
ListWheelViewport get widget => super.widget; ListWheelViewport get widget => super.widget as ListWheelViewport;
@override @override
RenderListWheelViewport get renderObject => super.renderObject; RenderListWheelViewport get renderObject => super.renderObject as RenderListWheelViewport;
// We inflate widgets at two different times: // We inflate widgets at two different times:
// 1. When we ourselves are told to rebuild (see performRebuild). // 1. When we ourselves are told to rebuild (see performRebuild).
...@@ -870,11 +870,11 @@ class ListWheelElement extends RenderObjectElement implements ListWheelChildMana ...@@ -870,11 +870,11 @@ class ListWheelElement extends RenderObjectElement implements ListWheelChildMana
@override @override
Element updateChild(Element child, Widget newWidget, dynamic newSlot) { Element updateChild(Element child, Widget newWidget, dynamic newSlot) {
final ListWheelParentData oldParentData = child?.renderObject?.parentData; final ListWheelParentData oldParentData = child?.renderObject?.parentData as ListWheelParentData;
final Element newChild = super.updateChild(child, newWidget, newSlot); final Element newChild = super.updateChild(child, newWidget, newSlot);
final ListWheelParentData newParentData = newChild?.renderObject?.parentData; final ListWheelParentData newParentData = newChild?.renderObject?.parentData as ListWheelParentData;
if (newParentData != null) { if (newParentData != null) {
newParentData.index = newSlot; newParentData.index = newSlot as int;
if (oldParentData != null) if (oldParentData != null)
newParentData.offset = oldParentData.offset; newParentData.offset = oldParentData.offset;
} }
...@@ -886,7 +886,7 @@ class ListWheelElement extends RenderObjectElement implements ListWheelChildMana ...@@ -886,7 +886,7 @@ class ListWheelElement extends RenderObjectElement implements ListWheelChildMana
void insertChildRenderObject(RenderObject child, int slot) { void insertChildRenderObject(RenderObject child, int slot) {
final RenderListWheelViewport renderObject = this.renderObject; final RenderListWheelViewport renderObject = this.renderObject;
assert(renderObject.debugValidateChild(child)); assert(renderObject.debugValidateChild(child));
renderObject.insert(child, after: _childElements[slot - 1]?.renderObject); renderObject.insert(child as RenderBox, after: _childElements[slot - 1]?.renderObject as RenderBox);
assert(renderObject == this.renderObject); assert(renderObject == this.renderObject);
} }
...@@ -901,7 +901,7 @@ class ListWheelElement extends RenderObjectElement implements ListWheelChildMana ...@@ -901,7 +901,7 @@ class ListWheelElement extends RenderObjectElement implements ListWheelChildMana
@override @override
void removeChildRenderObject(RenderObject child) { void removeChildRenderObject(RenderObject child) {
assert(child.parent == renderObject); assert(child.parent == renderObject);
renderObject.remove(child); renderObject.remove(child as RenderBox);
} }
@override @override
...@@ -1018,7 +1018,7 @@ class ListWheelViewport extends RenderObjectWidget { ...@@ -1018,7 +1018,7 @@ class ListWheelViewport extends RenderObjectWidget {
@override @override
RenderListWheelViewport createRenderObject(BuildContext context) { RenderListWheelViewport createRenderObject(BuildContext context) {
final ListWheelElement childManager = context; final ListWheelElement childManager = context as ListWheelElement;
return RenderListWheelViewport( return RenderListWheelViewport(
childManager: childManager, childManager: childManager,
offset: offset, offset: offset,
......
...@@ -535,12 +535,12 @@ class _LocalizationsState extends State<Localizations> { ...@@ -535,12 +535,12 @@ class _LocalizationsState extends State<Localizations> {
T resourcesFor<T>(Type type) { T resourcesFor<T>(Type type) {
assert(type != null); assert(type != null);
final T resources = _typeToResources[type]; final T resources = _typeToResources[type] as T;
return resources; return resources;
} }
TextDirection get _textDirection { TextDirection get _textDirection {
final WidgetsLocalizations resources = _typeToResources[WidgetsLocalizations]; final WidgetsLocalizations resources = _typeToResources[WidgetsLocalizations] as WidgetsLocalizations;
assert(resources != null); assert(resources != null);
return resources.textDirection; return resources.textDirection;
} }
......
...@@ -535,21 +535,21 @@ class MediaQueryData { ...@@ -535,21 +535,21 @@ class MediaQueryData {
bool operator ==(Object other) { bool operator ==(Object other) {
if (other.runtimeType != runtimeType) if (other.runtimeType != runtimeType)
return false; return false;
final MediaQueryData typedOther = other; return other is MediaQueryData
return typedOther.size == size && other.size == size
&& typedOther.devicePixelRatio == devicePixelRatio && other.devicePixelRatio == devicePixelRatio
&& typedOther.textScaleFactor == textScaleFactor && other.textScaleFactor == textScaleFactor
&& typedOther.platformBrightness == platformBrightness && other.platformBrightness == platformBrightness
&& typedOther.padding == padding && other.padding == padding
&& typedOther.viewPadding == viewPadding && other.viewPadding == viewPadding
&& typedOther.viewInsets == viewInsets && other.viewInsets == viewInsets
&& typedOther.physicalDepth == physicalDepth && other.physicalDepth == physicalDepth
&& typedOther.alwaysUse24HourFormat == alwaysUse24HourFormat && other.alwaysUse24HourFormat == alwaysUse24HourFormat
&& typedOther.highContrast == highContrast && other.highContrast == highContrast
&& typedOther.disableAnimations == disableAnimations && other.disableAnimations == disableAnimations
&& typedOther.invertColors == invertColors && other.invertColors == invertColors
&& typedOther.accessibleNavigation == accessibleNavigation && other.accessibleNavigation == accessibleNavigation
&& typedOther.boldText == boldText; && other.boldText == boldText;
} }
@override @override
......
...@@ -152,7 +152,7 @@ class AnimatedModalBarrier extends AnimatedWidget { ...@@ -152,7 +152,7 @@ class AnimatedModalBarrier extends AnimatedWidget {
/// ///
/// * [ModalRoute.barrierColor], which controls this property for the /// * [ModalRoute.barrierColor], which controls this property for the
/// [AnimatedModalBarrier] built by [ModalRoute] pages. /// [AnimatedModalBarrier] built by [ModalRoute] pages.
Animation<Color> get color => listenable; Animation<Color> get color => listenable as Animation<Color>;
/// Whether touching the barrier will pop the current route off the [Navigator]. /// Whether touching the barrier will pop the current route off the [Navigator].
/// ///
......
...@@ -1626,7 +1626,7 @@ class NavigatorState extends State<Navigator> with TickerProviderStateMixin { ...@@ -1626,7 +1626,7 @@ class NavigatorState extends State<Navigator> with TickerProviderStateMixin {
isInitialRoute: _history.isEmpty, isInitialRoute: _history.isEmpty,
arguments: arguments, arguments: arguments,
); );
Route<T> route = widget.onGenerateRoute(settings); Route<T> route = widget.onGenerateRoute(settings) as Route<T>;
if (route == null && !allowNull) { if (route == null && !allowNull) {
assert(() { assert(() {
if (widget.onUnknownRoute == null) { if (widget.onUnknownRoute == null) {
...@@ -1641,7 +1641,7 @@ class NavigatorState extends State<Navigator> with TickerProviderStateMixin { ...@@ -1641,7 +1641,7 @@ class NavigatorState extends State<Navigator> with TickerProviderStateMixin {
} }
return true; return true;
}()); }());
route = widget.onUnknownRoute(settings); route = widget.onUnknownRoute(settings) as Route<T>;
assert(() { assert(() {
if (route == null) { if (route == null) {
throw FlutterError.fromParts(<DiagnosticsNode>[ throw FlutterError.fromParts(<DiagnosticsNode>[
...@@ -2073,7 +2073,7 @@ class NavigatorState extends State<Navigator> with TickerProviderStateMixin { ...@@ -2073,7 +2073,7 @@ class NavigatorState extends State<Navigator> with TickerProviderStateMixin {
/// to define the route's `willPop` method. /// to define the route's `willPop` method.
@optionalTypeArgs @optionalTypeArgs
Future<bool> maybePop<T extends Object>([ T result ]) async { Future<bool> maybePop<T extends Object>([ T result ]) async {
final Route<T> route = _history.last; final Route<T> route = _history.last as Route<T>;
assert(route._navigator == this); assert(route._navigator == this);
final RoutePopDisposition disposition = await route.willPop(); final RoutePopDisposition disposition = await route.willPop();
if (disposition != RoutePopDisposition.bubble && mounted) { if (disposition != RoutePopDisposition.bubble && mounted) {
......
...@@ -610,7 +610,7 @@ class _NestedScrollCoordinator implements ScrollActivityDelegate, ScrollHoldCont ...@@ -610,7 +610,7 @@ class _NestedScrollCoordinator implements ScrollActivityDelegate, ScrollHoldCont
ScrollActivity createInnerBallisticScrollActivity(_NestedScrollPosition position, double velocity) { ScrollActivity createInnerBallisticScrollActivity(_NestedScrollPosition position, double velocity) {
return position.createBallisticScrollActivity( return position.createBallisticScrollActivity(
position.physics.createBallisticSimulation( position.physics.createBallisticSimulation(
velocity == 0 ? position : _getMetrics(position, velocity), velocity == 0 ? position as ScrollMetrics : _getMetrics(position, velocity),
velocity, velocity,
), ),
mode: _NestedBallisticScrollActivityMode.inner, mode: _NestedBallisticScrollActivityMode.inner,
...@@ -621,7 +621,7 @@ class _NestedScrollCoordinator implements ScrollActivityDelegate, ScrollHoldCont ...@@ -621,7 +621,7 @@ class _NestedScrollCoordinator implements ScrollActivityDelegate, ScrollHoldCont
assert(innerPosition != null); assert(innerPosition != null);
double pixels, minRange, maxRange, correctionOffset, extra; double pixels, minRange, maxRange, correctionOffset, extra;
if (innerPosition.pixels == innerPosition.minScrollExtent) { if (innerPosition.pixels == innerPosition.minScrollExtent) {
pixels = _outerPosition.pixels.clamp(_outerPosition.minScrollExtent, _outerPosition.maxScrollExtent); // TODO(ianh): gracefully handle out-of-range outer positions pixels = _outerPosition.pixels.clamp(_outerPosition.minScrollExtent, _outerPosition.maxScrollExtent) as double; // TODO(ianh): gracefully handle out-of-range outer positions
minRange = _outerPosition.minScrollExtent; minRange = _outerPosition.minScrollExtent;
maxRange = _outerPosition.maxScrollExtent; maxRange = _outerPosition.maxScrollExtent;
assert(minRange <= maxRange); assert(minRange <= maxRange);
...@@ -687,7 +687,7 @@ class _NestedScrollCoordinator implements ScrollActivityDelegate, ScrollHoldCont ...@@ -687,7 +687,7 @@ class _NestedScrollCoordinator implements ScrollActivityDelegate, ScrollHoldCont
double unnestOffset(double value, _NestedScrollPosition source) { double unnestOffset(double value, _NestedScrollPosition source) {
if (source == _outerPosition) if (source == _outerPosition)
return value.clamp(_outerPosition.minScrollExtent, _outerPosition.maxScrollExtent); return value.clamp(_outerPosition.minScrollExtent, _outerPosition.maxScrollExtent) as double;
if (value < source.minScrollExtent) if (value < source.minScrollExtent)
return value - source.minScrollExtent + _outerPosition.minScrollExtent; return value - source.minScrollExtent + _outerPosition.minScrollExtent;
return value - source.minScrollExtent + _outerPosition.maxScrollExtent; return value - source.minScrollExtent + _outerPosition.maxScrollExtent;
...@@ -695,7 +695,7 @@ class _NestedScrollCoordinator implements ScrollActivityDelegate, ScrollHoldCont ...@@ -695,7 +695,7 @@ class _NestedScrollCoordinator implements ScrollActivityDelegate, ScrollHoldCont
double nestOffset(double value, _NestedScrollPosition target) { double nestOffset(double value, _NestedScrollPosition target) {
if (target == _outerPosition) if (target == _outerPosition)
return value.clamp(_outerPosition.minScrollExtent, _outerPosition.maxScrollExtent); return value.clamp(_outerPosition.minScrollExtent, _outerPosition.maxScrollExtent) as double;
if (value < _outerPosition.minScrollExtent) if (value < _outerPosition.minScrollExtent)
return value - _outerPosition.minScrollExtent + target.minScrollExtent; return value - _outerPosition.minScrollExtent + target.minScrollExtent;
if (value > _outerPosition.maxScrollExtent) if (value > _outerPosition.maxScrollExtent)
...@@ -987,7 +987,7 @@ class _NestedScrollPosition extends ScrollPosition implements ScrollActivityDele ...@@ -987,7 +987,7 @@ class _NestedScrollPosition extends ScrollPosition implements ScrollActivityDele
// The logic for max is equivalent but on the other side. // The logic for max is equivalent but on the other side.
final double max = delta > 0.0 ? double.infinity : math.max(maxScrollExtent, pixels); final double max = delta > 0.0 ? double.infinity : math.max(maxScrollExtent, pixels);
final double oldPixels = pixels; final double oldPixels = pixels;
final double newPixels = (pixels - delta).clamp(min, max); final double newPixels = (pixels - delta).clamp(min, max) as double;
final double clampedDelta = newPixels - pixels; final double clampedDelta = newPixels - pixels;
if (clampedDelta == 0.0) if (clampedDelta == 0.0)
return delta; return delta;
...@@ -1152,7 +1152,7 @@ class _NestedInnerBallisticScrollActivity extends BallisticScrollActivity { ...@@ -1152,7 +1152,7 @@ class _NestedInnerBallisticScrollActivity extends BallisticScrollActivity {
final _NestedScrollCoordinator coordinator; final _NestedScrollCoordinator coordinator;
@override @override
_NestedScrollPosition get delegate => super.delegate; _NestedScrollPosition get delegate => super.delegate as _NestedScrollPosition;
@override @override
void resetActivity() { void resetActivity() {
...@@ -1185,7 +1185,7 @@ class _NestedOuterBallisticScrollActivity extends BallisticScrollActivity { ...@@ -1185,7 +1185,7 @@ class _NestedOuterBallisticScrollActivity extends BallisticScrollActivity {
final _NestedScrollMetrics metrics; final _NestedScrollMetrics metrics;
@override @override
_NestedScrollPosition get delegate => super.delegate; _NestedScrollPosition get delegate => super.delegate as _NestedScrollPosition;
@override @override
void resetActivity() { void resetActivity() {
...@@ -1215,7 +1215,7 @@ class _NestedOuterBallisticScrollActivity extends BallisticScrollActivity { ...@@ -1215,7 +1215,7 @@ class _NestedOuterBallisticScrollActivity extends BallisticScrollActivity {
done = true; done = true;
} }
} else { } else {
value = value.clamp(metrics.minRange, metrics.maxRange); value = value.clamp(metrics.minRange, metrics.maxRange) as double;
done = true; done = true;
} }
final bool result = super.applyMoveTo(value + metrics.correctionOffset); final bool result = super.applyMoveTo(value + metrics.correctionOffset);
......
...@@ -508,10 +508,10 @@ class _TheatreElement extends RenderObjectElement { ...@@ -508,10 +508,10 @@ class _TheatreElement extends RenderObjectElement {
super(widget); super(widget);
@override @override
_Theatre get widget => super.widget; _Theatre get widget => super.widget as _Theatre;
@override @override
_RenderTheatre get renderObject => super.renderObject; _RenderTheatre get renderObject => super.renderObject as _RenderTheatre;
Element _onstage; Element _onstage;
static final Object _onstageSlot = Object(); static final Object _onstageSlot = Object();
...@@ -524,10 +524,10 @@ class _TheatreElement extends RenderObjectElement { ...@@ -524,10 +524,10 @@ class _TheatreElement extends RenderObjectElement {
assert(renderObject.debugValidateChild(child)); assert(renderObject.debugValidateChild(child));
if (slot == _onstageSlot) { if (slot == _onstageSlot) {
assert(child is RenderStack); assert(child is RenderStack);
renderObject.child = child; renderObject.child = child as RenderStack;
} else { } else {
assert(slot == null || slot is Element); assert(slot == null || slot is Element);
renderObject.insert(child, after: slot?.renderObject); renderObject.insert(child, after: slot?.renderObject as RenderBox);
} }
} }
...@@ -536,14 +536,14 @@ class _TheatreElement extends RenderObjectElement { ...@@ -536,14 +536,14 @@ class _TheatreElement extends RenderObjectElement {
if (slot == _onstageSlot) { if (slot == _onstageSlot) {
renderObject.remove(child); renderObject.remove(child);
assert(child is RenderStack); assert(child is RenderStack);
renderObject.child = child; renderObject.child = child as RenderStack;
} else { } else {
assert(slot == null || slot is Element); assert(slot == null || slot is Element);
if (renderObject.child == child) { if (renderObject.child == child) {
renderObject.child = null; renderObject.child = null;
renderObject.insert(child, after: slot?.renderObject); renderObject.insert(child, after: slot?.renderObject as RenderBox);
} else { } else {
renderObject.move(child, after: slot?.renderObject); renderObject.move(child, after: slot?.renderObject as RenderBox);
} }
} }
} }
...@@ -675,7 +675,7 @@ class _RenderTheatre extends RenderBox ...@@ -675,7 +675,7 @@ class _RenderTheatre extends RenderBox
); );
if (child == lastChild) if (child == lastChild)
break; break;
final StackParentData childParentData = child.parentData; final StackParentData childParentData = child.parentData as StackParentData;
child = childParentData.nextSibling; child = childParentData.nextSibling;
count += 1; count += 1;
} }
......
...@@ -183,17 +183,17 @@ class _GlowingOverscrollIndicatorState extends State<GlowingOverscrollIndicator> ...@@ -183,17 +183,17 @@ class _GlowingOverscrollIndicatorState extends State<GlowingOverscrollIndicator>
assert(notification.overscroll != 0.0); assert(notification.overscroll != 0.0);
if (notification.dragDetails != null) { if (notification.dragDetails != null) {
assert(notification.dragDetails.globalPosition != null); assert(notification.dragDetails.globalPosition != null);
final RenderBox renderer = notification.context.findRenderObject(); final RenderBox renderer = notification.context.findRenderObject() as RenderBox;
assert(renderer != null); assert(renderer != null);
assert(renderer.hasSize); assert(renderer.hasSize);
final Size size = renderer.size; final Size size = renderer.size;
final Offset position = renderer.globalToLocal(notification.dragDetails.globalPosition); final Offset position = renderer.globalToLocal(notification.dragDetails.globalPosition);
switch (notification.metrics.axis) { switch (notification.metrics.axis) {
case Axis.horizontal: case Axis.horizontal:
controller.pull(notification.overscroll.abs(), size.width, position.dy.clamp(0.0, size.height), size.height); controller.pull(notification.overscroll.abs(), size.width, position.dy.clamp(0.0, size.height) as double, size.height);
break; break;
case Axis.vertical: case Axis.vertical:
controller.pull(notification.overscroll.abs(), size.height, position.dx.clamp(0.0, size.width), size.width); controller.pull(notification.overscroll.abs(), size.height, position.dx.clamp(0.0, size.width) as double, size.width);
break; break;
} }
} }
...@@ -335,9 +335,9 @@ class _GlowController extends ChangeNotifier { ...@@ -335,9 +335,9 @@ class _GlowController extends ChangeNotifier {
assert(velocity >= 0.0); assert(velocity >= 0.0);
_pullRecedeTimer?.cancel(); _pullRecedeTimer?.cancel();
_pullRecedeTimer = null; _pullRecedeTimer = null;
velocity = velocity.clamp(_minVelocity, _maxVelocity); velocity = velocity.clamp(_minVelocity, _maxVelocity) as double;
_glowOpacityTween.begin = _state == _GlowState.idle ? 0.3 : _glowOpacity.value; _glowOpacityTween.begin = _state == _GlowState.idle ? 0.3 : _glowOpacity.value;
_glowOpacityTween.end = (velocity * _velocityGlowFactor).clamp(_glowOpacityTween.begin, _maxOpacity); _glowOpacityTween.end = (velocity * _velocityGlowFactor).clamp(_glowOpacityTween.begin, _maxOpacity) as double;
_glowSizeTween.begin = _glowSize.value; _glowSizeTween.begin = _glowSize.value;
_glowSizeTween.end = math.min(0.025 + 7.5e-7 * velocity * velocity, 1.0); _glowSizeTween.end = math.min(0.025 + 7.5e-7 * velocity * velocity, 1.0);
_glowController.duration = Duration(milliseconds: (0.15 + velocity * 0.02).round()); _glowController.duration = Duration(milliseconds: (0.15 + velocity * 0.02).round());
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be // Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file. // found in the LICENSE file.
import 'package:flutter/foundation.dart';
import 'framework.dart'; import 'framework.dart';
/// A [ValueKey] that defines where [PageStorage] values will be saved. /// A [ValueKey] that defines where [PageStorage] values will be saved.
...@@ -48,12 +50,8 @@ class _StorageEntryIdentifier { ...@@ -48,12 +50,8 @@ class _StorageEntryIdentifier {
bool operator ==(dynamic other) { bool operator ==(dynamic other) {
if (other.runtimeType != runtimeType) if (other.runtimeType != runtimeType)
return false; return false;
final _StorageEntryIdentifier typedOther = other; return other is _StorageEntryIdentifier
for (int index = 0; index < keys.length; index += 1) { && listEquals<PageStorageKey<dynamic>>(other.keys, keys);
if (keys[index] != typedOther.keys[index])
return false;
}
return true;
} }
@override @override
......
...@@ -184,7 +184,7 @@ class PageController extends ScrollController { ...@@ -184,7 +184,7 @@ class PageController extends ScrollController {
'The page property cannot be read when multiple PageViews are attached to ' 'The page property cannot be read when multiple PageViews are attached to '
'the same PageController.', 'the same PageController.',
); );
final _PagePosition position = this.position; final _PagePosition position = this.position as _PagePosition;
return position.page; return position.page;
} }
...@@ -199,7 +199,7 @@ class PageController extends ScrollController { ...@@ -199,7 +199,7 @@ class PageController extends ScrollController {
@required Duration duration, @required Duration duration,
@required Curve curve, @required Curve curve,
}) { }) {
final _PagePosition position = this.position; final _PagePosition position = this.position as _PagePosition;
return position.animateTo( return position.animateTo(
position.getPixelsFromPage(page.toDouble()), position.getPixelsFromPage(page.toDouble()),
duration: duration, duration: duration,
...@@ -212,7 +212,7 @@ class PageController extends ScrollController { ...@@ -212,7 +212,7 @@ class PageController extends ScrollController {
/// Jumps the page position from its current value to the given value, /// Jumps the page position from its current value to the given value,
/// without animation, and without checking if the new value is in range. /// without animation, and without checking if the new value is in range.
void jumpToPage(int page) { void jumpToPage(int page) {
final _PagePosition position = this.position; final _PagePosition position = this.position as _PagePosition;
position.jumpTo(position.getPixelsFromPage(page.toDouble())); position.jumpTo(position.getPixelsFromPage(page.toDouble()));
} }
...@@ -251,7 +251,7 @@ class PageController extends ScrollController { ...@@ -251,7 +251,7 @@ class PageController extends ScrollController {
@override @override
void attach(ScrollPosition position) { void attach(ScrollPosition position) {
super.attach(position); super.attach(position);
final _PagePosition pagePosition = position; final _PagePosition pagePosition = position as _PagePosition;
pagePosition.viewportFraction = viewportFraction; pagePosition.viewportFraction = viewportFraction;
} }
} }
...@@ -372,7 +372,7 @@ class _PagePosition extends ScrollPositionWithSingleContext implements PageMetri ...@@ -372,7 +372,7 @@ class _PagePosition extends ScrollPositionWithSingleContext implements PageMetri
pixels == null || (minScrollExtent != null && maxScrollExtent != null), pixels == null || (minScrollExtent != null && maxScrollExtent != null),
'Page value is only available after content dimensions are established.', 'Page value is only available after content dimensions are established.',
); );
return pixels == null ? null : getPageFromPixels(pixels.clamp(minScrollExtent, maxScrollExtent), viewportDimension); return pixels == null ? null : getPageFromPixels(pixels.clamp(minScrollExtent, maxScrollExtent) as double, viewportDimension);
} }
@override @override
...@@ -383,7 +383,7 @@ class _PagePosition extends ScrollPositionWithSingleContext implements PageMetri ...@@ -383,7 +383,7 @@ class _PagePosition extends ScrollPositionWithSingleContext implements PageMetri
@override @override
void restoreScrollOffset() { void restoreScrollOffset() {
if (pixels == null) { if (pixels == null) {
final double value = PageStorage.of(context.storageContext)?.readState(context.storageContext); final double value = PageStorage.of(context.storageContext)?.readState(context.storageContext) as double;
if (value != null) if (value != null)
_pageToUseOnStartup = value; _pageToUseOnStartup = value;
} }
...@@ -499,7 +499,7 @@ class PageScrollPhysics extends ScrollPhysics { ...@@ -499,7 +499,7 @@ class PageScrollPhysics extends ScrollPhysics {
(velocity >= 0.0 && position.pixels >= position.maxScrollExtent)) (velocity >= 0.0 && position.pixels >= position.maxScrollExtent))
return super.createBallisticSimulation(position, velocity); return super.createBallisticSimulation(position, velocity);
final Tolerance tolerance = this.tolerance; final Tolerance tolerance = this.tolerance;
final double target = _getTargetPixels(position, tolerance, velocity); final double target = _getTargetPixels(position as ScrollPosition, tolerance, velocity);
if (target != position.pixels) if (target != position.pixels)
return ScrollSpringSimulation(spring, position.pixels, target, velocity, tolerance: tolerance); return ScrollSpringSimulation(spring, position.pixels, target, velocity, tolerance: tolerance);
return null; return null;
...@@ -806,7 +806,7 @@ class _PageViewState extends State<PageView> { ...@@ -806,7 +806,7 @@ class _PageViewState extends State<PageView> {
return NotificationListener<ScrollNotification>( return NotificationListener<ScrollNotification>(
onNotification: (ScrollNotification notification) { onNotification: (ScrollNotification notification) {
if (notification.depth == 0 && widget.onPageChanged != null && notification is ScrollUpdateNotification) { if (notification.depth == 0 && widget.onPageChanged != null && notification is ScrollUpdateNotification) {
final PageMetrics metrics = notification.metrics; final PageMetrics metrics = notification.metrics as PageMetrics;
final int currentPage = metrics.page.round(); final int currentPage = metrics.page.round();
if (currentPage != _lastReportedPage) { if (currentPage != _lastReportedPage) {
_lastReportedPage = currentPage; _lastReportedPage = currentPage;
......
...@@ -763,7 +763,7 @@ abstract class ModalRoute<T> extends TransitionRoute<T> with LocalHistoryRoute<T ...@@ -763,7 +763,7 @@ abstract class ModalRoute<T> extends TransitionRoute<T> with LocalHistoryRoute<T
@optionalTypeArgs @optionalTypeArgs
static ModalRoute<T> of<T extends Object>(BuildContext context) { static ModalRoute<T> of<T extends Object>(BuildContext context) {
final _ModalScopeStatus widget = context.dependOnInheritedWidgetOfExactType<_ModalScopeStatus>(); final _ModalScopeStatus widget = context.dependOnInheritedWidgetOfExactType<_ModalScopeStatus>();
return widget?.route; return widget?.route as ModalRoute<T>;
} }
/// Schedule a call to [buildTransitions]. /// Schedule a call to [buildTransitions].
......
...@@ -433,21 +433,21 @@ class DragScrollActivity extends ScrollActivity { ...@@ -433,21 +433,21 @@ class DragScrollActivity extends ScrollActivity {
void dispatchScrollStartNotification(ScrollMetrics metrics, BuildContext context) { void dispatchScrollStartNotification(ScrollMetrics metrics, BuildContext context) {
final dynamic lastDetails = _controller.lastDetails; final dynamic lastDetails = _controller.lastDetails;
assert(lastDetails is DragStartDetails); assert(lastDetails is DragStartDetails);
ScrollStartNotification(metrics: metrics, context: context, dragDetails: lastDetails).dispatch(context); ScrollStartNotification(metrics: metrics, context: context, dragDetails: lastDetails as DragStartDetails).dispatch(context);
} }
@override @override
void dispatchScrollUpdateNotification(ScrollMetrics metrics, BuildContext context, double scrollDelta) { void dispatchScrollUpdateNotification(ScrollMetrics metrics, BuildContext context, double scrollDelta) {
final dynamic lastDetails = _controller.lastDetails; final dynamic lastDetails = _controller.lastDetails;
assert(lastDetails is DragUpdateDetails); assert(lastDetails is DragUpdateDetails);
ScrollUpdateNotification(metrics: metrics, context: context, scrollDelta: scrollDelta, dragDetails: lastDetails).dispatch(context); ScrollUpdateNotification(metrics: metrics, context: context, scrollDelta: scrollDelta, dragDetails: lastDetails as DragUpdateDetails).dispatch(context);
} }
@override @override
void dispatchOverscrollNotification(ScrollMetrics metrics, BuildContext context, double overscroll) { void dispatchOverscrollNotification(ScrollMetrics metrics, BuildContext context, double overscroll) {
final dynamic lastDetails = _controller.lastDetails; final dynamic lastDetails = _controller.lastDetails;
assert(lastDetails is DragUpdateDetails); assert(lastDetails is DragUpdateDetails);
OverscrollNotification(metrics: metrics, context: context, overscroll: overscroll, dragDetails: lastDetails).dispatch(context); OverscrollNotification(metrics: metrics, context: context, overscroll: overscroll, dragDetails: lastDetails as DragUpdateDetails).dispatch(context);
} }
@override @override
......
...@@ -381,7 +381,7 @@ abstract class ScrollPosition extends ViewportOffset with ScrollMetrics { ...@@ -381,7 +381,7 @@ abstract class ScrollPosition extends ViewportOffset with ScrollMetrics {
@protected @protected
void restoreScrollOffset() { void restoreScrollOffset() {
if (pixels == null) { if (pixels == null) {
final double value = PageStorage.of(context.storageContext)?.readState(context.storageContext); final double value = PageStorage.of(context.storageContext)?.readState(context.storageContext) as double;
if (value != null) if (value != null)
correctPixels(value); correctPixels(value);
} }
...@@ -543,16 +543,16 @@ abstract class ScrollPosition extends ViewportOffset with ScrollMetrics { ...@@ -543,16 +543,16 @@ abstract class ScrollPosition extends ViewportOffset with ScrollMetrics {
double target; double target;
switch (alignmentPolicy) { switch (alignmentPolicy) {
case ScrollPositionAlignmentPolicy.explicit: case ScrollPositionAlignmentPolicy.explicit:
target = viewport.getOffsetToReveal(object, alignment).offset.clamp(minScrollExtent, maxScrollExtent); target = viewport.getOffsetToReveal(object, alignment).offset.clamp(minScrollExtent, maxScrollExtent) as double;
break; break;
case ScrollPositionAlignmentPolicy.keepVisibleAtEnd: case ScrollPositionAlignmentPolicy.keepVisibleAtEnd:
target = viewport.getOffsetToReveal(object, 1.0).offset.clamp(minScrollExtent, maxScrollExtent); target = viewport.getOffsetToReveal(object, 1.0).offset.clamp(minScrollExtent, maxScrollExtent) as double;
if (target < pixels) { if (target < pixels) {
target = pixels; target = pixels;
} }
break; break;
case ScrollPositionAlignmentPolicy.keepVisibleAtStart: case ScrollPositionAlignmentPolicy.keepVisibleAtStart:
target = viewport.getOffsetToReveal(object, 0.0).offset.clamp(minScrollExtent, maxScrollExtent); target = viewport.getOffsetToReveal(object, 0.0).offset.clamp(minScrollExtent, maxScrollExtent) as double;
if (target > pixels) { if (target > pixels) {
target = pixels; target = pixels;
} }
...@@ -641,7 +641,7 @@ abstract class ScrollPosition extends ViewportOffset with ScrollMetrics { ...@@ -641,7 +641,7 @@ abstract class ScrollPosition extends ViewportOffset with ScrollMetrics {
assert(clamp != null); assert(clamp != null);
if (clamp) if (clamp)
to = to.clamp(minScrollExtent, maxScrollExtent); to = to.clamp(minScrollExtent, maxScrollExtent) as double;
return super.moveTo(to, duration: duration, curve: curve); return super.moveTo(to, duration: duration, curve: curve);
} }
......
...@@ -91,7 +91,7 @@ class ScrollPositionWithSingleContext extends ScrollPosition implements ScrollAc ...@@ -91,7 +91,7 @@ class ScrollPositionWithSingleContext extends ScrollPosition implements ScrollAc
return; return;
} }
activity.updateDelegate(this); activity.updateDelegate(this);
final ScrollPositionWithSingleContext typedOther = other; final ScrollPositionWithSingleContext typedOther = other as ScrollPositionWithSingleContext;
_userScrollDirection = typedOther._userScrollDirection; _userScrollDirection = typedOther._userScrollDirection;
assert(_currentDrag == null); assert(_currentDrag == null);
if (typedOther._currentDrag != null) { if (typedOther._currentDrag != null) {
......
...@@ -212,13 +212,13 @@ class ClampingScrollSimulation extends Simulation { ...@@ -212,13 +212,13 @@ class ClampingScrollSimulation extends Simulation {
@override @override
double x(double time) { double x(double time) {
final double t = (time / _duration).clamp(0.0, 1.0); final double t = (time / _duration).clamp(0.0, 1.0) as double;
return position + _distance * _flingDistancePenetration(t) * velocity.sign; return position + _distance * _flingDistancePenetration(t) * velocity.sign;
} }
@override @override
double dx(double time) { double dx(double time) {
final double t = (time / _duration).clamp(0.0, 1.0); final double t = (time / _duration).clamp(0.0, 1.0) as double;
return _distance * _flingVelocityPenetration(t) * velocity.sign / _duration; return _distance * _flingVelocityPenetration(t) * velocity.sign / _duration;
} }
......
...@@ -481,7 +481,7 @@ class ScrollableState extends State<Scrollable> with TickerProviderStateMixin ...@@ -481,7 +481,7 @@ class ScrollableState extends State<Scrollable> with TickerProviderStateMixin
return; return;
_shouldIgnorePointer = value; _shouldIgnorePointer = value;
if (_ignorePointerKey.currentContext != null) { if (_ignorePointerKey.currentContext != null) {
final RenderIgnorePointer renderBox = _ignorePointerKey.currentContext.findRenderObject(); final RenderIgnorePointer renderBox = _ignorePointerKey.currentContext.findRenderObject() as RenderIgnorePointer;
renderBox.ignoring = _shouldIgnorePointer; renderBox.ignoring = _shouldIgnorePointer;
} }
} }
...@@ -576,7 +576,7 @@ class ScrollableState extends State<Scrollable> with TickerProviderStateMixin ...@@ -576,7 +576,7 @@ class ScrollableState extends State<Scrollable> with TickerProviderStateMixin
if (_physics != null && !_physics.shouldAcceptUserOffset(position)) { if (_physics != null && !_physics.shouldAcceptUserOffset(position)) {
return; return;
} }
final double targetScrollOffset = _targetScrollOffsetForPointerScroll(event); final double targetScrollOffset = _targetScrollOffsetForPointerScroll(event as PointerScrollEvent);
if (targetScrollOffset != position.pixels) { if (targetScrollOffset != position.pixels) {
position.jumpTo(targetScrollOffset); position.jumpTo(targetScrollOffset);
} }
......
...@@ -240,7 +240,7 @@ class ScrollbarPainter extends ChangeNotifier implements CustomPainter { ...@@ -240,7 +240,7 @@ class ScrollbarPainter extends ChangeNotifier implements CustomPainter {
// isn't less than the absolute minimum size. // isn't less than the absolute minimum size.
// _totalContentExtent >= viewportDimension, so (_totalContentExtent - _mainAxisPadding) > 0 // _totalContentExtent >= viewportDimension, so (_totalContentExtent - _mainAxisPadding) > 0
final double fractionVisible = ((_lastMetrics.extentInside - _mainAxisPadding) / (_totalContentExtent - _mainAxisPadding)) final double fractionVisible = ((_lastMetrics.extentInside - _mainAxisPadding) / (_totalContentExtent - _mainAxisPadding))
.clamp(0.0, 1.0); .clamp(0.0, 1.0) as double;
final double thumbExtent = math.max( final double thumbExtent = math.max(
math.min(_trackExtent, minOverscrollLength), math.min(_trackExtent, minOverscrollLength),
...@@ -267,7 +267,7 @@ class ScrollbarPainter extends ChangeNotifier implements CustomPainter { ...@@ -267,7 +267,7 @@ class ScrollbarPainter extends ChangeNotifier implements CustomPainter {
// The `thumbExtent` should be no greater than `trackSize`, otherwise // The `thumbExtent` should be no greater than `trackSize`, otherwise
// the scrollbar may scroll towards the wrong direction. // the scrollbar may scroll towards the wrong direction.
return thumbExtent.clamp(newMinLength, _trackExtent); return thumbExtent.clamp(newMinLength, _trackExtent) as double;
} }
@override @override
...@@ -311,7 +311,7 @@ class ScrollbarPainter extends ChangeNotifier implements CustomPainter { ...@@ -311,7 +311,7 @@ class ScrollbarPainter extends ChangeNotifier implements CustomPainter {
final double scrollableExtent = metrics.maxScrollExtent - metrics.minScrollExtent; final double scrollableExtent = metrics.maxScrollExtent - metrics.minScrollExtent;
final double fractionPast = (scrollableExtent > 0) final double fractionPast = (scrollableExtent > 0)
? ((metrics.pixels - metrics.minScrollExtent) / scrollableExtent).clamp(0.0, 1.0) ? ((metrics.pixels - metrics.minScrollExtent) / scrollableExtent).clamp(0.0, 1.0) as double
: 0; : 0;
return (_isReversed ? 1 - fractionPast : fractionPast) * (_trackExtent - thumbExtent); return (_isReversed ? 1 - fractionPast : fractionPast) * (_trackExtent - thumbExtent);
......
...@@ -89,8 +89,8 @@ class KeySet<T extends KeyboardKey> extends Diagnosticable { ...@@ -89,8 +89,8 @@ class KeySet<T extends KeyboardKey> extends Diagnosticable {
if (other.runtimeType != runtimeType) { if (other.runtimeType != runtimeType) {
return false; return false;
} }
final KeySet<T> typedOther = other; return other is KeySet<T>
return setEquals<T>(_keys, typedOther._keys); && setEquals<T>(other._keys, _keys);
} }
@override @override
......
...@@ -575,7 +575,7 @@ class _RenderSingleChildViewport extends RenderBox with RenderObjectWithChildMix ...@@ -575,7 +575,7 @@ class _RenderSingleChildViewport extends RenderBox with RenderObjectWithChildMix
if (target is! RenderBox) if (target is! RenderBox)
return RevealedOffset(offset: offset.pixels, rect: rect); return RevealedOffset(offset: offset.pixels, rect: rect);
final RenderBox targetBox = target; final RenderBox targetBox = target as RenderBox;
final Matrix4 transform = targetBox.getTransformTo(child); final Matrix4 transform = targetBox.getTransformTo(child);
final Rect bounds = MatrixUtils.transformRect(transform, rect); final Rect bounds = MatrixUtils.transformRect(transform, rect);
final Size contentSize = child.size; final Size contentSize = child.size;
......
...@@ -815,7 +815,7 @@ class SliverList extends SliverMultiBoxAdaptorWidget { ...@@ -815,7 +815,7 @@ class SliverList extends SliverMultiBoxAdaptorWidget {
@override @override
RenderSliverList createRenderObject(BuildContext context) { RenderSliverList createRenderObject(BuildContext context) {
final SliverMultiBoxAdaptorElement element = context; final SliverMultiBoxAdaptorElement element = context as SliverMultiBoxAdaptorElement;
return RenderSliverList(childManager: element); return RenderSliverList(childManager: element);
} }
} }
...@@ -878,7 +878,7 @@ class SliverFixedExtentList extends SliverMultiBoxAdaptorWidget { ...@@ -878,7 +878,7 @@ class SliverFixedExtentList extends SliverMultiBoxAdaptorWidget {
@override @override
RenderSliverFixedExtentList createRenderObject(BuildContext context) { RenderSliverFixedExtentList createRenderObject(BuildContext context) {
final SliverMultiBoxAdaptorElement element = context; final SliverMultiBoxAdaptorElement element = context as SliverMultiBoxAdaptorElement;
return RenderSliverFixedExtentList(childManager: element, itemExtent: itemExtent); return RenderSliverFixedExtentList(childManager: element, itemExtent: itemExtent);
} }
...@@ -998,7 +998,7 @@ class SliverGrid extends SliverMultiBoxAdaptorWidget { ...@@ -998,7 +998,7 @@ class SliverGrid extends SliverMultiBoxAdaptorWidget {
@override @override
RenderSliverGrid createRenderObject(BuildContext context) { RenderSliverGrid createRenderObject(BuildContext context) {
final SliverMultiBoxAdaptorElement element = context; final SliverMultiBoxAdaptorElement element = context as SliverMultiBoxAdaptorElement;
return RenderSliverGrid(childManager: element, gridDelegate: gridDelegate); return RenderSliverGrid(childManager: element, gridDelegate: gridDelegate);
} }
...@@ -1085,7 +1085,7 @@ class _SliverFillViewportRenderObjectWidget extends SliverMultiBoxAdaptorWidget ...@@ -1085,7 +1085,7 @@ class _SliverFillViewportRenderObjectWidget extends SliverMultiBoxAdaptorWidget
@override @override
RenderSliverFillViewport createRenderObject(BuildContext context) { RenderSliverFillViewport createRenderObject(BuildContext context) {
final SliverMultiBoxAdaptorElement element = context; final SliverMultiBoxAdaptorElement element = context as SliverMultiBoxAdaptorElement;
return RenderSliverFillViewport(childManager: element, viewportFraction: viewportFraction); return RenderSliverFillViewport(childManager: element, viewportFraction: viewportFraction);
} }
...@@ -1175,10 +1175,10 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render ...@@ -1175,10 +1175,10 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render
SliverMultiBoxAdaptorElement(SliverMultiBoxAdaptorWidget widget) : super(widget); SliverMultiBoxAdaptorElement(SliverMultiBoxAdaptorWidget widget) : super(widget);
@override @override
SliverMultiBoxAdaptorWidget get widget => super.widget; SliverMultiBoxAdaptorWidget get widget => super.widget as SliverMultiBoxAdaptorWidget;
@override @override
RenderSliverMultiBoxAdaptor get renderObject => super.renderObject; RenderSliverMultiBoxAdaptor get renderObject => super.renderObject as RenderSliverMultiBoxAdaptor;
@override @override
void update(covariant SliverMultiBoxAdaptorWidget newWidget) { void update(covariant SliverMultiBoxAdaptorWidget newWidget) {
...@@ -1220,9 +1220,9 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render ...@@ -1220,9 +1220,9 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render
final Element newChild = updateChild(newChildren[index], _build(index), index); final Element newChild = updateChild(newChildren[index], _build(index), index);
if (newChild != null) { if (newChild != null) {
_childElements[index] = newChild; _childElements[index] = newChild;
final SliverMultiBoxAdaptorParentData parentData = newChild.renderObject.parentData; final SliverMultiBoxAdaptorParentData parentData = newChild.renderObject.parentData as SliverMultiBoxAdaptorParentData;
if (!parentData.keptAlive) if (!parentData.keptAlive)
_currentBeforeChild = newChild.renderObject; _currentBeforeChild = newChild.renderObject as RenderBox;
} else { } else {
_childElements.remove(index); _childElements.remove(index);
} }
...@@ -1266,7 +1266,7 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render ...@@ -1266,7 +1266,7 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render
owner.buildScope(this, () { owner.buildScope(this, () {
final bool insertFirst = after == null; final bool insertFirst = after == null;
assert(insertFirst || _childElements[index-1] != null); assert(insertFirst || _childElements[index-1] != null);
_currentBeforeChild = insertFirst ? null : _childElements[index-1].renderObject; _currentBeforeChild = insertFirst ? null : (_childElements[index-1].renderObject as RenderBox);
Element newChild; Element newChild;
try { try {
_currentlyUpdatingChildIndex = index; _currentlyUpdatingChildIndex = index;
...@@ -1284,9 +1284,9 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render ...@@ -1284,9 +1284,9 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render
@override @override
Element updateChild(Element child, Widget newWidget, dynamic newSlot) { Element updateChild(Element child, Widget newWidget, dynamic newSlot) {
final SliverMultiBoxAdaptorParentData oldParentData = child?.renderObject?.parentData; final SliverMultiBoxAdaptorParentData oldParentData = child?.renderObject?.parentData as SliverMultiBoxAdaptorParentData;
final Element newChild = super.updateChild(child, newWidget, newSlot); final Element newChild = super.updateChild(child, newWidget, newSlot);
final SliverMultiBoxAdaptorParentData newParentData = newChild?.renderObject?.parentData; final SliverMultiBoxAdaptorParentData newParentData = newChild?.renderObject?.parentData as SliverMultiBoxAdaptorParentData;
// Preserve the old layoutOffset if the renderObject was swapped out. // Preserve the old layoutOffset if the renderObject was swapped out.
if (oldParentData != newParentData && oldParentData != null && newParentData != null) { if (oldParentData != newParentData && oldParentData != null && newParentData != null) {
...@@ -1390,7 +1390,7 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render ...@@ -1390,7 +1390,7 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render
@override @override
void didAdoptChild(RenderBox child) { void didAdoptChild(RenderBox child) {
assert(_currentlyUpdatingChildIndex != null); assert(_currentlyUpdatingChildIndex != null);
final SliverMultiBoxAdaptorParentData childParentData = child.parentData; final SliverMultiBoxAdaptorParentData childParentData = child.parentData as SliverMultiBoxAdaptorParentData;
childParentData.index = _currentlyUpdatingChildIndex; childParentData.index = _currentlyUpdatingChildIndex;
} }
...@@ -1406,9 +1406,9 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render ...@@ -1406,9 +1406,9 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render
assert(slot != null); assert(slot != null);
assert(_currentlyUpdatingChildIndex == slot); assert(_currentlyUpdatingChildIndex == slot);
assert(renderObject.debugValidateChild(child)); assert(renderObject.debugValidateChild(child));
renderObject.insert(child, after: _currentBeforeChild); renderObject.insert(child as RenderBox, after: _currentBeforeChild);
assert(() { assert(() {
final SliverMultiBoxAdaptorParentData childParentData = child.parentData; final SliverMultiBoxAdaptorParentData childParentData = child.parentData as SliverMultiBoxAdaptorParentData;
assert(slot == childParentData.index); assert(slot == childParentData.index);
return true; return true;
}()); }());
...@@ -1418,13 +1418,13 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render ...@@ -1418,13 +1418,13 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render
void moveChildRenderObject(covariant RenderObject child, int slot) { void moveChildRenderObject(covariant RenderObject child, int slot) {
assert(slot != null); assert(slot != null);
assert(_currentlyUpdatingChildIndex == slot); assert(_currentlyUpdatingChildIndex == slot);
renderObject.move(child, after: _currentBeforeChild); renderObject.move(child as RenderBox, after: _currentBeforeChild);
} }
@override @override
void removeChildRenderObject(covariant RenderObject child) { void removeChildRenderObject(covariant RenderObject child) {
assert(_currentlyUpdatingChildIndex != null); assert(_currentlyUpdatingChildIndex != null);
renderObject.remove(child); renderObject.remove(child as RenderBox);
} }
@override @override
...@@ -1438,7 +1438,7 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render ...@@ -1438,7 +1438,7 @@ class SliverMultiBoxAdaptorElement extends RenderObjectElement implements Render
@override @override
void debugVisitOnstageChildren(ElementVisitor visitor) { void debugVisitOnstageChildren(ElementVisitor visitor) {
_childElements.values.where((Element child) { _childElements.values.where((Element child) {
final SliverMultiBoxAdaptorParentData parentData = child.renderObject.parentData; final SliverMultiBoxAdaptorParentData parentData = child.renderObject.parentData as SliverMultiBoxAdaptorParentData;
double itemExtent; double itemExtent;
switch (renderObject.constraints.axis) { switch (renderObject.constraints.axis) {
case Axis.horizontal: case Axis.horizontal:
...@@ -1936,7 +1936,7 @@ class _SliverOffstageElement extends SingleChildRenderObjectElement { ...@@ -1936,7 +1936,7 @@ class _SliverOffstageElement extends SingleChildRenderObjectElement {
_SliverOffstageElement(SliverOffstage widget) : super(widget); _SliverOffstageElement(SliverOffstage widget) : super(widget);
@override @override
SliverOffstage get widget => super.widget; SliverOffstage get widget => super.widget as SliverOffstage;
@override @override
void debugVisitOnstageChildren(ElementVisitor visitor) { void debugVisitOnstageChildren(ElementVisitor visitor) {
...@@ -1985,7 +1985,7 @@ class KeepAlive extends ParentDataWidget<SliverWithKeepAliveWidget> { ...@@ -1985,7 +1985,7 @@ class KeepAlive extends ParentDataWidget<SliverWithKeepAliveWidget> {
@override @override
void applyParentData(RenderObject renderObject) { void applyParentData(RenderObject renderObject) {
assert(renderObject.parentData is KeepAliveParentDataMixin); assert(renderObject.parentData is KeepAliveParentDataMixin);
final KeepAliveParentDataMixin parentData = renderObject.parentData; final KeepAliveParentDataMixin parentData = renderObject.parentData as KeepAliveParentDataMixin;
if (parentData.keepAlive != keepAlive) { if (parentData.keepAlive != keepAlive) {
parentData.keepAlive = keepAlive; parentData.keepAlive = keepAlive;
final AbstractNode targetParent = renderObject.parent; final AbstractNode targetParent = renderObject.parent;
......
...@@ -173,10 +173,10 @@ class _SliverPersistentHeaderElement extends RenderObjectElement { ...@@ -173,10 +173,10 @@ class _SliverPersistentHeaderElement extends RenderObjectElement {
_SliverPersistentHeaderElement(_SliverPersistentHeaderRenderObjectWidget widget) : super(widget); _SliverPersistentHeaderElement(_SliverPersistentHeaderRenderObjectWidget widget) : super(widget);
@override @override
_SliverPersistentHeaderRenderObjectWidget get widget => super.widget; _SliverPersistentHeaderRenderObjectWidget get widget => super.widget as _SliverPersistentHeaderRenderObjectWidget;
@override @override
_RenderSliverPersistentHeaderForWidgetsMixin get renderObject => super.renderObject; _RenderSliverPersistentHeaderForWidgetsMixin get renderObject => super.renderObject as _RenderSliverPersistentHeaderForWidgetsMixin;
@override @override
void mount(Element parent, dynamic newSlot) { void mount(Element parent, dynamic newSlot) {
...@@ -230,7 +230,7 @@ class _SliverPersistentHeaderElement extends RenderObjectElement { ...@@ -230,7 +230,7 @@ class _SliverPersistentHeaderElement extends RenderObjectElement {
} }
@override @override
void insertChildRenderObject(covariant RenderObject child, dynamic slot) { void insertChildRenderObject(covariant RenderBox child, dynamic slot) {
assert(renderObject.debugValidateChild(child)); assert(renderObject.debugValidateChild(child));
renderObject.child = child; renderObject.child = child;
} }
......
...@@ -52,7 +52,7 @@ class SliverPrototypeExtentList extends SliverMultiBoxAdaptorWidget { ...@@ -52,7 +52,7 @@ class SliverPrototypeExtentList extends SliverMultiBoxAdaptorWidget {
@override @override
_RenderSliverPrototypeExtentList createRenderObject(BuildContext context) { _RenderSliverPrototypeExtentList createRenderObject(BuildContext context) {
final _SliverPrototypeExtentListElement element = context; final _SliverPrototypeExtentListElement element = context as _SliverPrototypeExtentListElement;
return _RenderSliverPrototypeExtentList(childManager: element); return _RenderSliverPrototypeExtentList(childManager: element);
} }
...@@ -64,10 +64,10 @@ class _SliverPrototypeExtentListElement extends SliverMultiBoxAdaptorElement { ...@@ -64,10 +64,10 @@ class _SliverPrototypeExtentListElement extends SliverMultiBoxAdaptorElement {
_SliverPrototypeExtentListElement(SliverPrototypeExtentList widget) : super(widget); _SliverPrototypeExtentListElement(SliverPrototypeExtentList widget) : super(widget);
@override @override
SliverPrototypeExtentList get widget => super.widget; SliverPrototypeExtentList get widget => super.widget as SliverPrototypeExtentList;
@override @override
_RenderSliverPrototypeExtentList get renderObject => super.renderObject; _RenderSliverPrototypeExtentList get renderObject => super.renderObject as _RenderSliverPrototypeExtentList;
Element _prototype; Element _prototype;
static final Object _prototypeSlot = Object(); static final Object _prototypeSlot = Object();
...@@ -76,9 +76,9 @@ class _SliverPrototypeExtentListElement extends SliverMultiBoxAdaptorElement { ...@@ -76,9 +76,9 @@ class _SliverPrototypeExtentListElement extends SliverMultiBoxAdaptorElement {
void insertChildRenderObject(covariant RenderObject child, covariant dynamic slot) { void insertChildRenderObject(covariant RenderObject child, covariant dynamic slot) {
if (slot == _prototypeSlot) { if (slot == _prototypeSlot) {
assert(child is RenderBox); assert(child is RenderBox);
renderObject.child = child; renderObject.child = child as RenderBox;
} else { } else {
super.insertChildRenderObject(child, slot); super.insertChildRenderObject(child, slot as int);
} }
} }
...@@ -93,7 +93,7 @@ class _SliverPrototypeExtentListElement extends SliverMultiBoxAdaptorElement { ...@@ -93,7 +93,7 @@ class _SliverPrototypeExtentListElement extends SliverMultiBoxAdaptorElement {
if (slot == _prototypeSlot) if (slot == _prototypeSlot)
assert(false); // There's only one prototype child so it cannot be moved. assert(false); // There's only one prototype child so it cannot be moved.
else else
super.moveChildRenderObject(child, slot); super.moveChildRenderObject(child, slot as int);
} }
@override @override
......
...@@ -240,10 +240,10 @@ class _TableElement extends RenderObjectElement { ...@@ -240,10 +240,10 @@ class _TableElement extends RenderObjectElement {
_TableElement(Table widget) : super(widget); _TableElement(Table widget) : super(widget);
@override @override
Table get widget => super.widget; Table get widget => super.widget as Table;
@override @override
RenderTable get renderObject => super.renderObject; RenderTable get renderObject => super.renderObject as RenderTable;
// This class ignores the child's slot entirely. // This class ignores the child's slot entirely.
// Instead of doing incremental updates to the child list, it replaces the entire list each frame. // Instead of doing incremental updates to the child list, it replaces the entire list each frame.
...@@ -276,7 +276,7 @@ class _TableElement extends RenderObjectElement { ...@@ -276,7 +276,7 @@ class _TableElement extends RenderObjectElement {
@override @override
void removeChildRenderObject(RenderObject child) { void removeChildRenderObject(RenderObject child) {
final TableCellParentData childParentData = child.parentData; final TableCellParentData childParentData = child.parentData as TableCellParentData;
renderObject.setChild(childParentData.x, childParentData.y, null); renderObject.setChild(childParentData.x, childParentData.y, null);
} }
...@@ -326,7 +326,7 @@ class _TableElement extends RenderObjectElement { ...@@ -326,7 +326,7 @@ class _TableElement extends RenderObjectElement {
_children.isNotEmpty ? _children[0].children.length : 0, _children.isNotEmpty ? _children[0].children.length : 0,
_children.expand<RenderBox>((_TableElementRow row) { _children.expand<RenderBox>((_TableElementRow row) {
return row.children.map<RenderBox>((Element child) { return row.children.map<RenderBox>((Element child) {
final RenderBox box = child.renderObject; final RenderBox box = child.renderObject as RenderBox;
return box; return box;
}); });
}).toList(), }).toList(),
...@@ -367,7 +367,7 @@ class TableCell extends ParentDataWidget<Table> { ...@@ -367,7 +367,7 @@ class TableCell extends ParentDataWidget<Table> {
@override @override
void applyParentData(RenderObject renderObject) { void applyParentData(RenderObject renderObject) {
final TableCellParentData parentData = renderObject.parentData; final TableCellParentData parentData = renderObject.parentData as TableCellParentData;
if (parentData.verticalAlignment != verticalAlignment) { if (parentData.verticalAlignment != verticalAlignment) {
parentData.verticalAlignment = verticalAlignment; parentData.verticalAlignment = verticalAlignment;
final AbstractNode targetParent = renderObject.parent; final AbstractNode targetParent = renderObject.parent;
......
...@@ -435,7 +435,7 @@ class Text extends StatelessWidget { ...@@ -435,7 +435,7 @@ class Text extends StatelessWidget {
text: TextSpan( text: TextSpan(
style: effectiveTextStyle, style: effectiveTextStyle,
text: data, text: data,
children: textSpan != null ? <TextSpan>[textSpan] : null, children: textSpan != null ? <InlineSpan>[textSpan] : null,
), ),
); );
if (semanticsLabel != null) { if (semanticsLabel != null) {
......
...@@ -265,7 +265,7 @@ class SlideTransition extends AnimatedWidget { ...@@ -265,7 +265,7 @@ class SlideTransition extends AnimatedWidget {
/// If the current value of the position animation is `(dx, dy)`, the child /// If the current value of the position animation is `(dx, dy)`, the child
/// will be translated horizontally by `width * dx` and vertically by /// will be translated horizontally by `width * dx` and vertically by
/// `height * dy`, after applying the [textDirection] if available. /// `height * dy`, after applying the [textDirection] if available.
Animation<Offset> get position => listenable; Animation<Offset> get position => listenable as Animation<Offset>;
/// The direction to use for the x offset described by the [position]. /// The direction to use for the x offset described by the [position].
/// ///
...@@ -337,7 +337,7 @@ class ScaleTransition extends AnimatedWidget { ...@@ -337,7 +337,7 @@ class ScaleTransition extends AnimatedWidget {
/// ///
/// If the current value of the scale animation is v, the child will be /// If the current value of the scale animation is v, the child will be
/// painted v times its normal size. /// painted v times its normal size.
Animation<double> get scale => listenable; Animation<double> get scale => listenable as Animation<double>;
/// The alignment of the origin of the coordinate system in which the scale /// The alignment of the origin of the coordinate system in which the scale
/// takes place, relative to the size of the box. /// takes place, relative to the size of the box.
...@@ -391,7 +391,7 @@ class RotationTransition extends AnimatedWidget { ...@@ -391,7 +391,7 @@ class RotationTransition extends AnimatedWidget {
/// ///
/// If the current value of the turns animation is v, the child will be /// If the current value of the turns animation is v, the child will be
/// rotated v * 2 * pi radians before being painted. /// rotated v * 2 * pi radians before being painted.
Animation<double> get turns => listenable; Animation<double> get turns => listenable as Animation<double>;
/// The alignment of the origin of the coordinate system around which the /// The alignment of the origin of the coordinate system around which the
/// rotation occurs, relative to the size of the box. /// rotation occurs, relative to the size of the box.
...@@ -473,7 +473,7 @@ class SizeTransition extends AnimatedWidget { ...@@ -473,7 +473,7 @@ class SizeTransition extends AnimatedWidget {
/// ///
/// If the value of [sizeFactor] is less than one, the child will be clipped /// If the value of [sizeFactor] is less than one, the child will be clipped
/// in the appropriate axis. /// in the appropriate axis.
Animation<double> get sizeFactor => listenable; Animation<double> get sizeFactor => listenable as Animation<double>;
/// Describes how to align the child along the axis that [sizeFactor] is /// Describes how to align the child along the axis that [sizeFactor] is
/// modifying. /// modifying.
...@@ -635,7 +635,7 @@ class PositionedTransition extends AnimatedWidget { ...@@ -635,7 +635,7 @@ class PositionedTransition extends AnimatedWidget {
super(key: key, listenable: rect); super(key: key, listenable: rect);
/// The animation that controls the child's size and position. /// The animation that controls the child's size and position.
Animation<RelativeRect> get rect => listenable; Animation<RelativeRect> get rect => listenable as Animation<RelativeRect>;
/// The widget below this widget in the tree. /// The widget below this widget in the tree.
/// ///
...@@ -692,7 +692,7 @@ class RelativePositionedTransition extends AnimatedWidget { ...@@ -692,7 +692,7 @@ class RelativePositionedTransition extends AnimatedWidget {
/// The animation that controls the child's size and position. /// The animation that controls the child's size and position.
/// ///
/// See also [size]. /// See also [size].
Animation<Rect> get rect => listenable; Animation<Rect> get rect => listenable as Animation<Rect>;
/// The [Positioned] widget's offsets are relative to a box of this /// The [Positioned] widget's offsets are relative to a box of this
/// size whose origin is 0,0. /// size whose origin is 0,0.
...@@ -806,7 +806,7 @@ class AlignTransition extends AnimatedWidget { ...@@ -806,7 +806,7 @@ class AlignTransition extends AnimatedWidget {
super(key: key, listenable: alignment); super(key: key, listenable: alignment);
/// The animation that controls the child's alignment. /// The animation that controls the child's alignment.
Animation<AlignmentGeometry> get alignment => listenable; Animation<AlignmentGeometry> get alignment => listenable as Animation<AlignmentGeometry>;
/// If non-null, the child's width factor, see [Align.widthFactor]. /// If non-null, the child's width factor, see [Align.widthFactor].
final double widthFactor; final double widthFactor;
...@@ -855,7 +855,7 @@ class DefaultTextStyleTransition extends AnimatedWidget { ...@@ -855,7 +855,7 @@ class DefaultTextStyleTransition extends AnimatedWidget {
super(key: key, listenable: style); super(key: key, listenable: style);
/// The animation that controls the descendants' text style. /// The animation that controls the descendants' text style.
Animation<TextStyle> get style => listenable; Animation<TextStyle> get style => listenable as Animation<TextStyle>;
/// How the text should be aligned horizontally. /// How the text should be aligned horizontally.
final TextAlign textAlign; final TextAlign textAlign;
......
...@@ -215,7 +215,7 @@ class _TweenAnimationBuilderState<T> extends AnimatedWidgetBaseState<TweenAnimat ...@@ -215,7 +215,7 @@ class _TweenAnimationBuilderState<T> extends AnimatedWidgetBaseState<TweenAnimat
// Constructor will never be called because null is never provided as current tween. // Constructor will never be called because null is never provided as current tween.
assert(false); assert(false);
return null; return null;
}); }) as Tween<T>;
} }
@override @override
......
...@@ -34,7 +34,7 @@ abstract class UniqueWidget<T extends State<StatefulWidget>> extends StatefulWid ...@@ -34,7 +34,7 @@ abstract class UniqueWidget<T extends State<StatefulWidget>> extends StatefulWid
/// ///
/// Might be null if the widget is not currently in the tree. /// Might be null if the widget is not currently in the tree.
T get currentState { T get currentState {
final GlobalKey<T> globalKey = key; final GlobalKey<T> globalKey = key as GlobalKey<T>;
return globalKey.currentState; return globalKey.currentState;
} }
} }
...@@ -186,10 +186,10 @@ class _ViewportElement extends MultiChildRenderObjectElement { ...@@ -186,10 +186,10 @@ class _ViewportElement extends MultiChildRenderObjectElement {
_ViewportElement(Viewport widget) : super(widget); _ViewportElement(Viewport widget) : super(widget);
@override @override
Viewport get widget => super.widget; Viewport get widget => super.widget as Viewport;
@override @override
RenderViewport get renderObject => super.renderObject; RenderViewport get renderObject => super.renderObject as RenderViewport;
@override @override
void mount(Element parent, dynamic newSlot) { void mount(Element parent, dynamic newSlot) {
...@@ -208,9 +208,9 @@ class _ViewportElement extends MultiChildRenderObjectElement { ...@@ -208,9 +208,9 @@ class _ViewportElement extends MultiChildRenderObjectElement {
if (widget.center != null) { if (widget.center != null) {
renderObject.center = children.singleWhere( renderObject.center = children.singleWhere(
(Element element) => element.widget.key == widget.center (Element element) => element.widget.key == widget.center
).renderObject; ).renderObject as RenderSliver;
} else if (children.isNotEmpty) { } else if (children.isNotEmpty) {
renderObject.center = children.first.renderObject; renderObject.center = children.first.renderObject as RenderSliver;
} else { } else {
renderObject.center = null; renderObject.center = null;
} }
...@@ -219,7 +219,7 @@ class _ViewportElement extends MultiChildRenderObjectElement { ...@@ -219,7 +219,7 @@ class _ViewportElement extends MultiChildRenderObjectElement {
@override @override
void debugVisitOnstageChildren(ElementVisitor visitor) { void debugVisitOnstageChildren(ElementVisitor visitor) {
children.where((Element e) { children.where((Element e) {
final RenderSliver renderSliver = e.renderObject; final RenderSliver renderSliver = e.renderObject as RenderSliver;
return renderSliver.geometry.visible; return renderSliver.geometry.visible;
}).forEach(visitor); }).forEach(visitor);
} }
......
...@@ -148,7 +148,7 @@ class WidgetSpan extends PlaceholderSpan { ...@@ -148,7 +148,7 @@ class WidgetSpan extends PlaceholderSpan {
return RenderComparison.layout; return RenderComparison.layout;
if ((style == null) != (other.style == null)) if ((style == null) != (other.style == null))
return RenderComparison.layout; return RenderComparison.layout;
final WidgetSpan typedOther = other; final WidgetSpan typedOther = other as WidgetSpan;
if (child != typedOther.child || alignment != typedOther.alignment) { if (child != typedOther.child || alignment != typedOther.alignment) {
return RenderComparison.layout; return RenderComparison.layout;
} }
...@@ -171,10 +171,10 @@ class WidgetSpan extends PlaceholderSpan { ...@@ -171,10 +171,10 @@ class WidgetSpan extends PlaceholderSpan {
return false; return false;
if (super != other) if (super != other)
return false; return false;
final WidgetSpan typedOther = other; return other is WidgetSpan
return typedOther.child == child && other.child == child
&& typedOther.alignment == alignment && other.alignment == alignment
&& typedOther.baseline == baseline; && other.baseline == baseline;
} }
@override @override
......
...@@ -810,7 +810,7 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService { ...@@ -810,7 +810,7 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService {
final Element elementB = find.text('b').evaluate().first; final Element elementB = find.text('b').evaluate().first;
service.disposeAllGroups(); service.disposeAllGroups();
service.setPubRootDirectories(<Object>[]); service.setPubRootDirectories(<String>[]);
service.setSelection(elementA, 'my-group'); service.setSelection(elementA, 'my-group');
final Map<String, Object> jsonA = json.decode(service.getSelectedWidget(null, 'my-group')); final Map<String, Object> jsonA = json.decode(service.getSelectedWidget(null, 'my-group'));
final Map<String, Object> creationLocationA = jsonA['creationLocation']; final Map<String, Object> creationLocationA = jsonA['creationLocation'];
...@@ -885,7 +885,7 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService { ...@@ -885,7 +885,7 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService {
// directory. // directory.
pubRootTest = '/' + pubRootTest = '/' +
segments.take(segments.length - 2).join('/'); segments.take(segments.length - 2).join('/');
service.setPubRootDirectories(<Object>[pubRootTest]); service.setPubRootDirectories(<String>[pubRootTest]);
} }
final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder(); final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder();
builder.add(StringProperty('dummy1', 'value')); builder.add(StringProperty('dummy1', 'value'));
...@@ -948,7 +948,7 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService { ...@@ -948,7 +948,7 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService {
// directory. // directory.
pubRootTest = '/' + pubRootTest = '/' +
segments.take(segments.length - 2).join('/'); segments.take(segments.length - 2).join('/');
service.setPubRootDirectories(<Object>[pubRootTest]); service.setPubRootDirectories(<String>[pubRootTest]);
} }
final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder(); final DiagnosticPropertiesBuilder builder = DiagnosticPropertiesBuilder();
builder.add(StringProperty('dummy1', 'value')); builder.add(StringProperty('dummy1', 'value'));
...@@ -995,7 +995,7 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService { ...@@ -995,7 +995,7 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService {
final Element elementA = find.text('a').evaluate().first; final Element elementA = find.text('a').evaluate().first;
service.disposeAllGroups(); service.disposeAllGroups();
service.setPubRootDirectories(<Object>[]); service.setPubRootDirectories(<String>[]);
service.setSelection(elementA, 'my-group'); service.setSelection(elementA, 'my-group');
Map<String, Object> jsonObject = json.decode(service.getSelectedWidget(null, 'my-group')); Map<String, Object> jsonObject = json.decode(service.getSelectedWidget(null, 'my-group'));
Map<String, Object> creationLocation = jsonObject['creationLocation']; Map<String, Object> creationLocation = jsonObject['creationLocation'];
...@@ -1007,21 +1007,21 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService { ...@@ -1007,21 +1007,21 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService {
// Strip a couple subdirectories away to generate a plausible pub root // Strip a couple subdirectories away to generate a plausible pub root
// directory. // directory.
final String pubRootTest = '/' + segments.take(segments.length - 2).join('/'); final String pubRootTest = '/' + segments.take(segments.length - 2).join('/');
service.setPubRootDirectories(<Object>[pubRootTest]); service.setPubRootDirectories(<String>[pubRootTest]);
service.setSelection(elementA, 'my-group'); service.setSelection(elementA, 'my-group');
expect(json.decode(service.getSelectedWidget(null, 'my-group')), contains('createdByLocalProject')); expect(json.decode(service.getSelectedWidget(null, 'my-group')), contains('createdByLocalProject'));
service.setPubRootDirectories(<Object>['/invalid/$pubRootTest']); service.setPubRootDirectories(<String>['/invalid/$pubRootTest']);
expect(json.decode(service.getSelectedWidget(null, 'my-group')), isNot(contains('createdByLocalProject'))); expect(json.decode(service.getSelectedWidget(null, 'my-group')), isNot(contains('createdByLocalProject')));
service.setPubRootDirectories(<Object>['file://$pubRootTest']); service.setPubRootDirectories(<String>['file://$pubRootTest']);
expect(json.decode(service.getSelectedWidget(null, 'my-group')), contains('createdByLocalProject')); expect(json.decode(service.getSelectedWidget(null, 'my-group')), contains('createdByLocalProject'));
service.setPubRootDirectories(<Object>['$pubRootTest/different']); service.setPubRootDirectories(<String>['$pubRootTest/different']);
expect(json.decode(service.getSelectedWidget(null, 'my-group')), isNot(contains('createdByLocalProject'))); expect(json.decode(service.getSelectedWidget(null, 'my-group')), isNot(contains('createdByLocalProject')));
service.setPubRootDirectories(<Object>[ service.setPubRootDirectories(<String>[
'/invalid/$pubRootTest', '/invalid/$pubRootTest',
pubRootTest, pubRootTest,
]); ]);
...@@ -1034,7 +1034,7 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService { ...@@ -1034,7 +1034,7 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService {
matching: find.byType(RichText), matching: find.byType(RichText),
).evaluate().first; ).evaluate().first;
service.setSelection(richText, 'my-group'); service.setSelection(richText, 'my-group');
service.setPubRootDirectories(<Object>[pubRootTest]); service.setPubRootDirectories(<String>[pubRootTest]);
jsonObject = json.decode(service.getSelectedWidget(null, 'my-group')); jsonObject = json.decode(service.getSelectedWidget(null, 'my-group'));
expect(jsonObject, isNot(contains('createdByLocalProject'))); expect(jsonObject, isNot(contains('createdByLocalProject')));
creationLocation = jsonObject['creationLocation']; creationLocation = jsonObject['creationLocation'];
...@@ -1046,12 +1046,12 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService { ...@@ -1046,12 +1046,12 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService {
// Strip off /src/widgets/text.dart. // Strip off /src/widgets/text.dart.
final String pubRootFramework = '/' + pathSegmentsFramework.take(pathSegmentsFramework.length - 3).join('/'); final String pubRootFramework = '/' + pathSegmentsFramework.take(pathSegmentsFramework.length - 3).join('/');
service.setPubRootDirectories(<Object>[pubRootFramework]); service.setPubRootDirectories(<String>[pubRootFramework]);
expect(json.decode(service.getSelectedWidget(null, 'my-group')), contains('createdByLocalProject')); expect(json.decode(service.getSelectedWidget(null, 'my-group')), contains('createdByLocalProject'));
service.setSelection(elementA, 'my-group'); service.setSelection(elementA, 'my-group');
expect(json.decode(service.getSelectedWidget(null, 'my-group')), isNot(contains('createdByLocalProject'))); expect(json.decode(service.getSelectedWidget(null, 'my-group')), isNot(contains('createdByLocalProject')));
service.setPubRootDirectories(<Object>[pubRootFramework, pubRootTest]); service.setPubRootDirectories(<String>[pubRootFramework, pubRootTest]);
service.setSelection(elementA, 'my-group'); service.setSelection(elementA, 'my-group');
expect(json.decode(service.getSelectedWidget(null, 'my-group')), contains('createdByLocalProject')); expect(json.decode(service.getSelectedWidget(null, 'my-group')), contains('createdByLocalProject'));
service.setSelection(richText, 'my-group'); service.setSelection(richText, 'my-group');
...@@ -1609,7 +1609,7 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService { ...@@ -1609,7 +1609,7 @@ class TestWidgetInspectorService extends Object with WidgetInspectorService {
matching: find.byType(RichText), matching: find.byType(RichText),
).evaluate().first; ).evaluate().first;
service.setSelection(richText, 'my-group'); service.setSelection(richText, 'my-group');
service.setPubRootDirectories(<Object>[pubRootTest]); service.setPubRootDirectories(<String>[pubRootTest]);
jsonObject = json.decode(service.getSelectedWidget(null, 'my-group')); jsonObject = json.decode(service.getSelectedWidget(null, 'my-group'));
expect(jsonObject, isNot(contains('createdByLocalProject'))); expect(jsonObject, isNot(contains('createdByLocalProject')));
creationLocation = jsonObject['creationLocation']; creationLocation = jsonObject['creationLocation'];
......
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