anchor.diff:  
     @override
     void dispose() {
  -    (_animation as CurvedAnimation).dispose();
  +    _animation.dispose();
       _controller.dispose();
       super.dispose();
     }
  
positive.code:   void didUpdateWidget(T oldWidget) {
      super.didUpdateWidget(oldWidget);
      if (widget.curve != oldWidget.curve) {
        (_animation as CurvedAnimation).dispose();
        _animation = _createCurve();
      }
      _controller.duration = widget.duration;
  
negative.code: 
    /// The animation driving this widget's implicit animations.
    Animation<double> get animation => _animation;
    late CurvedAnimation _animation = _createCurve();
  
    @override
    void initState() {
  