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