Commit 1c236d52 authored by Siva Annamalai's avatar Siva Annamalai Committed by Siva

Fixes in flutter framework code to address the mixin issue raised

in https://github.com/dart-lang/sdk/issues/31984
parent 17c50693
...@@ -52,7 +52,7 @@ class RenderProxyBox extends RenderBox with RenderObjectWithChildMixin<RenderBox ...@@ -52,7 +52,7 @@ class RenderProxyBox extends RenderBox with RenderObjectWithChildMixin<RenderBox
/// of [RenderProxyBox] is desired but inheriting from [RenderProxyBox] is /// of [RenderProxyBox] is desired but inheriting from [RenderProxyBox] is
/// impractical (e.g. because you want to mix in other classes as well). /// impractical (e.g. because you want to mix in other classes as well).
// TODO(ianh): Remove this class once https://github.com/dart-lang/sdk/issues/15101 is fixed // TODO(ianh): Remove this class once https://github.com/dart-lang/sdk/issues/15101 is fixed
abstract class RenderProxyBoxMixin extends RenderBox with RenderObjectWithChildMixin<RenderBox> { abstract class RenderProxyBoxMixin<T extends RenderBox> extends RenderBox with RenderObjectWithChildMixin<T> {
// This class is intended to be used as a mixin, and should not be // This class is intended to be used as a mixin, and should not be
// extended directly. // extended directly.
factory RenderProxyBoxMixin._() => null; factory RenderProxyBoxMixin._() => null;
......
...@@ -299,7 +299,7 @@ class KeepAliveHandle extends ChangeNotifier { ...@@ -299,7 +299,7 @@ class KeepAliveHandle extends ChangeNotifier {
/// ///
/// * [AutomaticKeepAlive], which listens to messages from this mixin. /// * [AutomaticKeepAlive], which listens to messages from this mixin.
/// * [KeepAliveNotification], the notifications sent by this mixin. /// * [KeepAliveNotification], the notifications sent by this mixin.
abstract class AutomaticKeepAliveClientMixin extends State<StatefulWidget> { abstract class AutomaticKeepAliveClientMixin<T extends StatefulWidget> extends State<T> {
// This class is intended to be used as a mixin, and should not be // This class is intended to be used as a mixin, and should not be
// extended directly. // extended directly.
factory AutomaticKeepAliveClientMixin._() => null; factory AutomaticKeepAliveClientMixin._() => null;
...@@ -358,4 +358,4 @@ abstract class AutomaticKeepAliveClientMixin extends State<StatefulWidget> { ...@@ -358,4 +358,4 @@ abstract class AutomaticKeepAliveClientMixin extends State<StatefulWidget> {
_ensureKeepAlive(); _ensureKeepAlive();
return null; return null;
} }
} }
\ No newline at end of file
...@@ -73,7 +73,7 @@ class TickerMode extends InheritedWidget { ...@@ -73,7 +73,7 @@ class TickerMode extends InheritedWidget {
/// This mixin only supports vending a single ticker. If you might have multiple /// This mixin only supports vending a single ticker. If you might have multiple
/// [AnimationController] objects over the lifetime of the [State], use a full /// [AnimationController] objects over the lifetime of the [State], use a full
/// [TickerProviderStateMixin] instead. /// [TickerProviderStateMixin] instead.
abstract class SingleTickerProviderStateMixin extends State<dynamic> implements TickerProvider { // ignore: TYPE_ARGUMENT_NOT_MATCHING_BOUNDS, https://github.com/dart-lang/sdk/issues/25232 abstract class SingleTickerProviderStateMixin<T extends StatefulWidget> extends State<T> implements TickerProvider { // ignore: TYPE_ARGUMENT_NOT_MATCHING_BOUNDS, https://github.com/dart-lang/sdk/issues/25232
// This class is intended to be used as a mixin, and should not be // This class is intended to be used as a mixin, and should not be
// extended directly. // extended directly.
factory SingleTickerProviderStateMixin._() => null; factory SingleTickerProviderStateMixin._() => null;
...@@ -155,7 +155,7 @@ abstract class SingleTickerProviderStateMixin extends State<dynamic> implements ...@@ -155,7 +155,7 @@ abstract class SingleTickerProviderStateMixin extends State<dynamic> implements
/// If you only have a single [Ticker] (for example only a single /// If you only have a single [Ticker] (for example only a single
/// [AnimationController]) for the lifetime of your [State], then using a /// [AnimationController]) for the lifetime of your [State], then using a
/// [SingleTickerProviderStateMixin] is more efficient. This is the common case. /// [SingleTickerProviderStateMixin] is more efficient. This is the common case.
abstract class TickerProviderStateMixin extends State<dynamic> implements TickerProvider { // ignore: TYPE_ARGUMENT_NOT_MATCHING_BOUNDS, https://github.com/dart-lang/sdk/issues/25232 abstract class TickerProviderStateMixin<T extends StatefulWidget> extends State<T> implements TickerProvider { // ignore: TYPE_ARGUMENT_NOT_MATCHING_BOUNDS, https://github.com/dart-lang/sdk/issues/25232
// This class is intended to be used as a mixin, and should not be // This class is intended to be used as a mixin, and should not be
// extended directly. // extended directly.
factory TickerProviderStateMixin._() => null; factory TickerProviderStateMixin._() => null;
...@@ -231,7 +231,7 @@ abstract class TickerProviderStateMixin extends State<dynamic> implements Ticker ...@@ -231,7 +231,7 @@ abstract class TickerProviderStateMixin extends State<dynamic> implements Ticker
class _WidgetTicker extends Ticker { class _WidgetTicker extends Ticker {
_WidgetTicker(TickerCallback onTick, this._creator, { String debugLabel }) : super(onTick, debugLabel: debugLabel); _WidgetTicker(TickerCallback onTick, this._creator, { String debugLabel }) : super(onTick, debugLabel: debugLabel);
final TickerProviderStateMixin _creator; final TickerProviderStateMixin<StatefulWidget> _creator;
@override @override
void dispose() { void dispose() {
......
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