diff --git a/dev/integration_tests/flutter_gallery/lib/gallery/backdrop.dart b/dev/integration_tests/flutter_gallery/lib/gallery/backdrop.dart index eb2a684c4a..28db07acc3 100644 --- a/dev/integration_tests/flutter_gallery/lib/gallery/backdrop.dart +++ b/dev/integration_tests/flutter_gallery/lib/gallery/backdrop.dart @@ -11,7 +11,7 @@ const double _kFrontClosedHeight = 92.0; // front layer height when closed const double _kBackAppBarHeight = 56.0; // back layer (options) appbar height // The size of the front layer heading's left and right beveled corners. -final Animatable _kFrontHeadingBevelRadius = BorderRadiusTween( +final Animatable _kFrontHeadingBevelRadius = BorderRadiusTween( begin: const BorderRadius.only( topLeft: Radius.circular(12.0), topRight: Radius.circular(12.0), @@ -315,7 +315,7 @@ class _BackdropState extends State with SingleTickerProviderStateMixin color: Theme.of(context).canvasColor, clipper: ShapeBorderClipper( shape: BeveledRectangleBorder( - borderRadius: _kFrontHeadingBevelRadius.transform(_controller!.value), + borderRadius: _kFrontHeadingBevelRadius.transform(_controller!.value)!, ), ), clipBehavior: Clip.antiAlias, diff --git a/packages/flutter/lib/src/widgets/implicit_animations.dart b/packages/flutter/lib/src/widgets/implicit_animations.dart index 8d76372058..23229f7755 100644 --- a/packages/flutter/lib/src/widgets/implicit_animations.dart +++ b/packages/flutter/lib/src/widgets/implicit_animations.dart @@ -125,7 +125,7 @@ class EdgeInsetsGeometryTween extends Tween { /// [BorderRadius.lerp]. /// /// See [Tween] for a discussion on how to use interpolation objects. -class BorderRadiusTween extends Tween { +class BorderRadiusTween extends Tween { /// Creates a [BorderRadius] tween. /// /// The [begin] and [end] properties may be null; the null value @@ -134,7 +134,7 @@ class BorderRadiusTween extends Tween { /// Returns the value this variable has at the given animation clock value. @override - BorderRadius lerp(double t) => BorderRadius.lerp(begin, end, t)!; + BorderRadius? lerp(double t) => BorderRadius.lerp(begin, end, t); } /// An interpolation between two [Border]s. diff --git a/packages/flutter/test/animation/tween_test.dart b/packages/flutter/test/animation/tween_test.dart index d4d13d9f5d..39fa01bd00 100644 --- a/packages/flutter/test/animation/tween_test.dart +++ b/packages/flutter/test/animation/tween_test.dart @@ -230,4 +230,11 @@ void main() { expect(tween.transform(0.5), 0.31640625); expect(tween.transform(1.0), 1.0); }); + + test('BorderRadiusTween nullable test', () { + final BorderRadiusTween tween = BorderRadiusTween(begin: null, end: null); + expect(tween.transform(0.0), null); + expect(tween.transform(1.0), null); + expect(tween.lerp(0.0), null); + }); }