Add meta tag @optionalTypeArgs to the mixin classes where we don't expect a generic type to be specified at the points where the mixin is applied. This suppresses the analyzer warnings.
diff --git a/packages/flutter/lib/src/rendering/proxy_box.dart b/packages/flutter/lib/src/rendering/proxy_box.dart index 3b80195..7ec86bb 100644 --- a/packages/flutter/lib/src/rendering/proxy_box.dart +++ b/packages/flutter/lib/src/rendering/proxy_box.dart
@@ -51,7 +51,8 @@ /// This class can be used as a mixin for situations where the proxying behavior /// of [RenderProxyBox] is desired but inheriting from [RenderProxyBox] is /// 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 +@optionalTypeArgs 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 // extended directly.
diff --git a/packages/flutter/lib/src/widgets/automatic_keep_alive.dart b/packages/flutter/lib/src/widgets/automatic_keep_alive.dart index ad264d8..4f70895 100644 --- a/packages/flutter/lib/src/widgets/automatic_keep_alive.dart +++ b/packages/flutter/lib/src/widgets/automatic_keep_alive.dart
@@ -299,6 +299,7 @@ /// /// * [AutomaticKeepAlive], which listens to messages from this mixin. /// * [KeepAliveNotification], the notifications sent by this mixin. +@optionalTypeArgs abstract class AutomaticKeepAliveClientMixin<T extends StatefulWidget> extends State<T> { // This class is intended to be used as a mixin, and should not be // extended directly.
diff --git a/packages/flutter/lib/src/widgets/ticker_provider.dart b/packages/flutter/lib/src/widgets/ticker_provider.dart index 5449e8f..0248589 100644 --- a/packages/flutter/lib/src/widgets/ticker_provider.dart +++ b/packages/flutter/lib/src/widgets/ticker_provider.dart
@@ -73,6 +73,7 @@ /// This mixin only supports vending a single ticker. If you might have multiple /// [AnimationController] objects over the lifetime of the [State], use a full /// [TickerProviderStateMixin] instead. +@optionalTypeArgs 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 // extended directly. @@ -155,6 +156,7 @@ /// If you only have a single [Ticker] (for example only a single /// [AnimationController]) for the lifetime of your [State], then using a /// [SingleTickerProviderStateMixin] is more efficient. This is the common case. +@optionalTypeArgs 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 // extended directly.