# Copyright 2014 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# TODO(Piinks): Add link to public user guide when available.

# Please add new fixes to the top of the file, separated by one blank line
# from other fixes. In a comment, include a link to the PR where the change
# requiring the fix was made.

version: 1
transforms:

  # Changes made in https://github.com/flutter/flutter/pull/68905.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart' ]
      method: 'resolveFrom'
      inClass: 'MaterialBasedCupertinoThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'nullOk'

  # Changes made in https://github.com/flutter/flutter/pull/68905.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'cupertino.dart' ]
      method: 'resolveFrom'
      inClass: 'CupertinoTextThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'nullOk'

  # Changes made in https://github.com/flutter/flutter/pull/68905.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'cupertino.dart' ]
      method: 'resolveFrom'
      inClass: 'NoDefaultCupertinoThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'nullOk'

  # Changes made in https://github.com/flutter/flutter/pull/68905.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'cupertino.dart' ]
      method: 'resolveFrom'
      inClass: 'CupertinoThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'nullOk'

  # Changes made in https://github.com/flutter/flutter/pull/68736.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'cupertino.dart' ]
      method: 'brightnessOf'
      inClass: 'CupertinoTheme'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeBrightnessOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68905.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'cupertino.dart' ]
      method: 'of'
      inClass: 'CupertinoUserInterfaceLevel'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68905.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'cupertino.dart' ]
      method: 'resolveFrom'
      inClass: 'CupertinoDynamicColor'
    changes:
      - kind: 'removeParameter'
        name: 'nullOk'

  # Changes made in https://github.com/flutter/flutter/pull/68905.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'cupertino.dart' ]
      method: 'resolve'
      inClass: 'CupertinoDynamicColor'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeResolve'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68925.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'of'
      inClass: 'SliverAnimatedList'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68925.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'of'
      inClass: 'AnimatedList'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68921.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'invoke'
      inClass: 'Actions'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeInvoke'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68921.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'find'
      inClass: 'Actions'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeFind'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68921.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'handler'
      inClass: 'Actions'
    changes:
      - kind: 'removeParameter'
        name: 'nullOk'

  # Changes made in https://github.com/flutter/flutter/pull/68921.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'of'
      inClass: 'Shortcuts'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68917.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'of'
      inClass: 'Focus'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68917.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'of'
      inClass: 'FocusTraversalGroup'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68917.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'of'
      inClass: 'FocusTraversalOrder'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68911.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'localeOf'
      inClass: 'Localizations'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeLocaleOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68910.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'of'
      inClass: 'Router'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68908.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart' ]
      method: 'of'
      inClass: 'Scaffold'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68908.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart' ]
      method: 'of'
      inClass: 'ScaffoldMessenger'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/70726.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'of'
      inClass: 'Navigator'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/68736.
  - title: "Migrate from 'nullOk'"
    date: 2021-01-27
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'of'
      inClass: 'MediaQuery'
    oneOf:
      - if: "nullOk == 'true'"
        changes:
          - kind: 'rename'
            newName: 'maybeOf'
          - kind: 'removeParameter'
            name: 'nullOk'
      - if: "nullOk == 'false'"
        changes:
          - kind: 'removeParameter'
            name: 'nullOk'
    variables:
      nullOk:
        kind: 'fragment'
        value: 'arguments[nullOk]'

  # Changes made in https://github.com/flutter/flutter/pull/44189.
  - title: "Rename to 'dependOnInheritedElement'"
    date: 2020-12-23
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      method: 'inheritFromElement'
      inClass: 'Element'
    changes:
      - kind: 'rename'
        newName: 'dependOnInheritedElement'

  # Changes made in https://github.com/flutter/flutter/pull/44189.
  - title: "Rename to 'dependOnInheritedWidgetOfExactType'"
    date: 2020-09-14
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      method: 'inheritFromWidgetOfExactType'
      inClass: 'Element'
    changes:
      - kind: 'rename'
        newName: 'dependOnInheritedWidgetOfExactType'
      - kind: 'addTypeParameter'
        index: 0
        name: 'T'
        argumentValue:
          expression: '{% type %}'
          variables:
            type:
              kind: 'fragment'
              value: 'arguments[0]'
      - kind: 'removeParameter'
        index: 0

  # Changes made in https://github.com/flutter/flutter/pull/44189.
  - title: "Rename to 'getElementForInheritedWidgetOfExactType'"
    date: 2020-09-14
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      method: 'ancestorInheritedElementForWidgetOfExactType'
      inClass: 'Element'
    changes:
      - kind: 'rename'
        newName: 'getElementForInheritedWidgetOfExactType'
      - kind: 'addTypeParameter'
        index: 0
        name: 'T'
        argumentValue:
          expression: '{% type %}'
          variables:
            type:
              kind: 'fragment'
              value: 'arguments[0]'
      - kind: 'removeParameter'
        index: 0

  # Changes made in https://github.com/flutter/flutter/pull/44189.
  - title: "Rename to 'getElementForInheritedWidgetOfExactType'"
    date: 2020-12-23
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      method: 'ancestorWidgetOfExactType'
      inClass: 'Element'
    changes:
      - kind: 'rename'
        newName: 'findAncestorWidgetOfExactType'
      - kind: 'addTypeParameter'
        index: 0
        name: 'T'
        argumentValue:
          expression: '{% type %}'
          variables:
            type:
              kind: 'fragment'
              value: 'arguments[0]'
      - kind: 'removeParameter'
        index: 0

  # Changes made in https://github.com/flutter/flutter/pull/44189.
  - title: "Rename to 'findAncestorStateOfType'"
    date: 2020-12-23
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      method: 'ancestorStateOfType'
      inClass: 'Element'
    changes:
      - kind: 'rename'
        newName: 'findAncestorStateOfType'
      - kind: 'addTypeParameter'
        index: 0
        name: 'T'
        argumentValue:
          expression: '{% type %}'
          variables:
            type:
              kind: 'fragment'
              value: 'arguments[0].typeArguments[0]'
      - kind: 'removeParameter'
        index: 0

  # Changes made in https://github.com/flutter/flutter/pull/44189.
  - title: "Rename to 'findAncestorRenderObjectOfType'"
    date: 2020-12-23
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      method: 'ancestorRenderObjectOfType'
      inClass: 'Element'
    changes:
      - kind: 'rename'
        newName: 'findAncestorRenderObjectOfType'
      - kind: 'addTypeParameter'
        index: 0
        name: 'T'
        argumentValue:
          expression: '{% type %}'
          variables:
            type:
              kind: 'fragment'
              value: 'arguments[0].typeArguments[0]'
      - kind: 'removeParameter'
        index: 0

  # Changes made in https://github.com/flutter/flutter/pull/44189.
  - title: "Rename to 'findAncestorRenderObjectOfType'"
    date: 2020-12-23
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      method: 'rootAncestorStateOfType'
      inClass: 'Element'
    changes:
      - kind: 'rename'
        newName: 'findRootAncestorStateOfType'
      - kind: 'addTypeParameter'
        index: 0
        name: 'T'
        argumentValue:
          expression: '{% type %}'
          variables:
            type:
              kind: 'fragment'
              value: 'arguments[0].typeArguments[0]'
      - kind: 'removeParameter'
        index: 0

  # Changes made in https://github.com/flutter/flutter/pull/26259
  - title: "Rename to 'resizeToAvoidBottomInset'"
    date: 2020-12-23
    element:
      uris: [ 'material.dart' ]
      field: 'resizeToAvoidBottomPadding'
      inClass: 'Scaffold'
    changes:
      - kind: 'rename'
        newName: 'resizeToAvoidBottomInset'

  # Changes made in https://github.com/flutter/flutter/pull/26259
  - title: "Rename to 'resizeToAvoidBottomInset'"
    date: 2020-12-23
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'Scaffold'
    changes:
      - kind: 'renameParameter'
        oldName: 'resizeToAvoidBottomPadding'
        newName: 'resizeToAvoidBottomInset'

  # Change made in https://github.com/flutter/flutter/pull/20649
  # TODO(Piinks): Add tests when `bulkApply:false` testing is supported, https://github.com/dart-lang/sdk/issues/44639
  - title: "Replace with 'CupertinoPopupSurface'"
    date: 2021-01-07
    bulkApply: false
    element:
      uris: [ 'cupertino.dart' ]
      class: 'CupertinoDialog'
    changes:
      - kind: 'rename'
        newName: 'CupertinoPopupSurface'

  # Change made in https://github.com/flutter/flutter/pull/20649
  # TODO(Piinks): Add tests when `bulkApply:false` testing is supported, https://github.com/dart-lang/sdk/issues/44639
  - title: "Replace with 'CupertinoAlertDialog'"
    date: 2021-01-07
    bulkApply: false
    element:
      uris: [ 'cupertino.dart' ]
      class: 'CupertinoDialog'
    changes:
      - kind: 'rename'
        newName: 'CupertinoAlertDialog'
      - kind: 'renameParameter'
        oldName: 'child'
        newName: 'content'

  # Changes made in https://github.com/flutter/flutter/pull/61648
  - title: "Migrate to 'autovalidateMode'"
    date: 2020-09-02
    element:
      uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
      field: 'autovalidate'
      inClass: 'Form'
    changes:
      - kind: 'rename'
        newName: 'autovalidateMode'

  # Changes made in https://github.com/flutter/flutter/pull/61648
  - title: "Migrate to 'autovalidateMode'"
    date: 2020-09-02
    element:
      uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
      constructor: ''
      inClass: 'Form'
    oneOf:
      - if: "autovalidate == 'true'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'autovalidateMode'
            style: optional_named
            argumentValue:
              expression: 'AutoValidateMode.always'
              requiredIf: "autovalidate == 'true'"
          - kind: 'removeParameter'
            name: 'autovalidate'
      - if: "autovalidate == 'false'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'autovalidateMode'
            style: optional_named
            argumentValue:
              expression: 'AutoValidateMode.disabled'
              requiredIf: "autovalidate == 'false'"
          - kind: 'removeParameter'
            name: 'autovalidate'
    variables:
      autovalidate:
        kind: 'fragment'
        value: 'arguments[autovalidate]'

  # Changes made in https://github.com/flutter/flutter/pull/61648
  - title: "Migrate to 'autovalidateMode'"
    date: 2020-09-02
    element:
      uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
      field: 'autovalidate'
      inClass: 'FormField'
    changes:
      - kind: 'rename'
        newName: 'autovalidateMode'

  # Changes made in https://github.com/flutter/flutter/pull/61648
  - title: "Migrate to 'autovalidateMode'"
    date: 2020-09-02
    element:
      uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
      constructor: ''
      inClass: 'FormField'
    oneOf:
      - if: "autovalidate == 'true'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'autovalidateMode'
            style: optional_named
            argumentValue:
              expression: 'AutoValidateMode.always'
              requiredIf: "autovalidate == 'true'"
          - kind: 'removeParameter'
            name: 'autovalidate'
      - if: "autovalidate == 'false'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'autovalidateMode'
            style: optional_named
            argumentValue:
              expression: 'AutoValidateMode.disabled'
              requiredIf: "autovalidate == 'false'"
          - kind: 'removeParameter'
            name: 'autovalidate'
    variables:
      autovalidate:
        kind: 'fragment'
        value: 'arguments[autovalidate]'

  # Changes made in https://github.com/flutter/flutter/pull/61648
  - title: "Migrate to 'autovalidateMode'"
    date: 2020-09-02
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'TextFormField'
    oneOf:
      - if: "autovalidate == 'true'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'autovalidateMode'
            style: optional_named
            argumentValue:
              expression: 'AutoValidateMode.always'
              requiredIf: "autovalidate == 'true'"
          - kind: 'removeParameter'
            name: 'autovalidate'
      - if: "autovalidate == 'false'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'autovalidateMode'
            style: optional_named
            argumentValue:
              expression: 'AutoValidateMode.disabled'
              requiredIf: "autovalidate == 'false'"
          - kind: 'removeParameter'
            name: 'autovalidate'
    variables:
      autovalidate:
        kind: 'fragment'
        value: 'arguments[autovalidate]'

  # Changes made in https://github.com/flutter/flutter/pull/61648
  - title: "Migrate to 'autovalidateMode'"
    date: 2020-09-02
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'DropdownButtonFormField'
    oneOf:
      - if: "autovalidate == 'true'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'autovalidateMode'
            style: optional_named
            argumentValue:
              expression: 'AutoValidateMode.always'
              requiredIf: "autovalidate == 'true'"
          - kind: 'removeParameter'
            name: 'autovalidate'
      - if: "autovalidate == 'false'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'autovalidateMode'
            style: optional_named
            argumentValue:
              expression: 'AutoValidateMode.disabled'
              requiredIf: "autovalidate == 'false'"
          - kind: 'removeParameter'
            name: 'autovalidate'
    variables:
      autovalidate:
        kind: 'fragment'
        value: 'arguments[autovalidate]'

  # Changes made in https://github.com/flutter/flutter/pull/48547
  - title: "Rename to 'headline1'"
    date: 2020-01-24
    element:
      uris: [ 'material.dart' ]
      getter: display4
      inClass: 'TextTheme'
    changes:
      - kind: 'rename'
        newName: 'headline1'

  # Changes made in https://github.com/flutter/flutter/pull/48547
  - title: "Rename to 'headline2'"
    date: 2020-01-24
    element:
      uris: [ 'material.dart' ]
      getter: display3
      inClass: 'TextTheme'
    changes:
      - kind: 'rename'
        newName: 'headline2'

  # Changes made in https://github.com/flutter/flutter/pull/48547
  - title: "Rename to 'headline3'"
    date: 2020-01-24
    element:
      uris: [ 'material.dart' ]
      getter: display2
      inClass: 'TextTheme'
    changes:
      - kind: 'rename'
        newName: 'headline3'

  # Changes made in https://github.com/flutter/flutter/pull/48547
  - title: "Rename to 'headline4'"
    date: 2020-01-24
    element:
      uris: [ 'material.dart' ]
      getter: display1
      inClass: 'TextTheme'
    changes:
      - kind: 'rename'
        newName: 'headline4'

  # Changes made in https://github.com/flutter/flutter/pull/48547
  - title: "Rename to 'headline5'"
    date: 2020-01-24
    element:
      uris: [ 'material.dart' ]
      getter: headline
      inClass: 'TextTheme'
    changes:
      - kind: 'rename'
        newName: 'headline5'

  # Changes made in https://github.com/flutter/flutter/pull/48547
  - title: "Rename to 'headline6'"
    date: 2020-01-24
    element:
      uris: [ 'material.dart' ]
      getter: title
      inClass: 'TextTheme'
    changes:
      - kind: 'rename'
        newName: 'headline6'

  # Changes made in https://github.com/flutter/flutter/pull/48547
  - title: "Rename to 'subtitle1'"
    date: 2020-01-24
    element:
      uris: [ 'material.dart' ]
      getter: subhead
      inClass: 'TextTheme'
    changes:
      - kind: 'rename'
        newName: 'subtitle1'

  # Changes made in https://github.com/flutter/flutter/pull/48547
  - title: "Rename to 'bodyText1'"
    date: 2020-01-24
    element:
      uris: [ 'material.dart' ]
      getter: body2
      inClass: 'TextTheme'
    changes:
      - kind: 'rename'
        newName: 'bodyText1'

  # Changes made in https://github.com/flutter/flutter/pull/48547
  - title: "Rename to 'bodyText2'"
    date: 2020-01-24
    element:
      uris: [ 'material.dart' ]
      getter: body1
      inClass: 'TextTheme'
    changes:
      - kind: 'rename'
        newName: 'bodyText2'

  # Changes made in https://github.com/flutter/flutter/pull/48547
  - title: "Rename to 'subtitle2'"
    date: 2020-01-24
    element:
      uris: [ 'material.dart' ]
      getter: subtitle
      inClass: 'TextTheme'
    changes:
      - kind: 'rename'
        newName: 'subtitle2'

  # Changes made in https://github.com/flutter/flutter/pull/48547
  - title: 'Rename arguments'
    date: 2020-01-24
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'TextTheme'
    changes:
      - kind: 'renameParameter'
        oldName: 'display4'
        newName: 'headline1'
      - kind: 'renameParameter'
        oldName: 'display3'
        newName: 'headline2'
      - kind: 'renameParameter'
        oldName: 'display2'
        newName: 'headline3'
      - kind: 'renameParameter'
        oldName: 'display1'
        newName: 'headline4'
      - kind: 'renameParameter'
        oldName: 'headline'
        newName: 'headline5'
      - kind: 'renameParameter'
        oldName: 'title'
        newName: 'headline6'
      - kind: 'renameParameter'
        oldName: 'subhead'
        newName: 'subtitle1'
      - kind: 'renameParameter'
        oldName: 'subtitle'
        newName: 'subtitle2'
      - kind: 'renameParameter'
        oldName: 'body2'
        newName: 'bodyText1'
      - kind: 'renameParameter'
        oldName: 'body1'
        newName: 'bodyText2'

  # Changes made in https://github.com/flutter/flutter/pull/48547
  - title: 'Rename arguments'
    date: 2020-01-24
    element:
      uris: [ 'material.dart' ]
      method: 'copyWith'
      inClass: 'TextTheme'
    changes:
      - kind: 'renameParameter'
        oldName: 'display4'
        newName: 'headline1'
      - kind: 'renameParameter'
        oldName: 'display3'
        newName: 'headline2'
      - kind: 'renameParameter'
        oldName: 'display2'
        newName: 'headline3'
      - kind: 'renameParameter'
        oldName: 'display1'
        newName: 'headline4'
      - kind: 'renameParameter'
        oldName: 'headline'
        newName: 'headline5'
      - kind: 'renameParameter'
        oldName: 'title'
        newName: 'headline6'
      - kind: 'renameParameter'
        oldName: 'subhead'
        newName: 'subtitle1'
      - kind: 'renameParameter'
        oldName: 'subtitle'
        newName: 'subtitle2'
      - kind: 'renameParameter'
        oldName: 'body2'
        newName: 'bodyText1'
      - kind: 'renameParameter'
        oldName: 'body1'
        newName: 'bodyText2'

  # Changes made in https://github.com/flutter/flutter/pull/66305
  - title: "Migrate to 'clipBehavior'"
    date: 2020-09-22
    element:
      uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
      field: 'overflow'
      inClass: 'Stack'
    changes:
      - kind: 'rename'
        newName: 'clipBehavior'

  # Changes made in https://github.com/flutter/flutter/pull/66305
  - title: "Migrate to 'clipBehavior'"
    date: 2020-09-22
    element:
      uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
      constructor: ''
      inClass: 'Stack'
    oneOf:
      - if: "overflow == 'Overflow.clip'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'clipBehavior'
            style: optional_named
            argumentValue:
              expression: 'Clip.hardEdge'
              requiredIf: "overflow == 'Overflow.clip'"
          - kind: 'removeParameter'
            name: 'overflow'
      - if: "overflow == 'Overflow.visible'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'clipBehavior'
            style: optional_named
            argumentValue:
              expression: 'Clip.none'
              requiredIf: "overflow == 'Overflow.visible'"
          - kind: 'removeParameter'
            name: 'overflow'
    variables:
      overflow:
        kind: 'fragment'
        value: 'arguments[overflow]'

  # Change made in https://github.com/flutter/flutter/pull/44189.
  - title: "Rename to 'dependOnInheritedElement'"
    date: 2019-11-22
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      inClass: 'BuildContext'
      method: 'inheritFromElement'
    changes:
      - kind: 'rename'
        newName: 'dependOnInheritedElement'

  # Change made in https://github.com/flutter/flutter/pull/44189.
  - title: "Migrate to 'dependOnInheritedWidgetOfExactType'"
    date: 2019-11-22
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      inClass: 'BuildContext'
      method: 'inheritFromWidgetOfExactType'
    changes:
      - kind: 'rename'
        newName: 'dependOnInheritedWidgetOfExactType'
      - kind: 'removeParameter'
        index: 0
      - kind: 'addTypeParameter'
        index: 0
        name: 'T'
        argumentValue:
          expression: '{% type %}'
          variables:
            type:
              kind: fragment
              value: 'arguments[0]'

  # Change made in https://github.com/flutter/flutter/pull/44189.
  - title: "Migrate to 'getElementForInheritedWidgetOfExactType'"
    date: 2019-11-22
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      inClass: 'BuildContext'
      method: 'ancestorInheritedElementForWidgetOfExactType'
    changes:
      - kind: 'rename'
        newName: 'getElementForInheritedWidgetOfExactType'
      - kind: 'removeParameter'
        index: 0
      - kind: 'addTypeParameter'
        index: 0
        name: 'T'
        argumentValue:
          expression: '{% type %}'
          variables:
            type:
              kind: fragment
              value: 'arguments[0]'

  # Change made in https://github.com/flutter/flutter/pull/44189.
  - title: "Migrate to 'findAncestorWidgetOfExactType'"
    date: 2019-11-22
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      inClass: 'BuildContext'
      method: 'ancestorWidgetOfExactType'
    changes:
      - kind: 'rename'
        newName: 'findAncestorWidgetOfExactType'
      - kind: 'removeParameter'
        index: 0
      - kind: 'addTypeParameter'
        index: 0
        name: 'T'
        argumentValue:
          expression: '{% type %}'
          variables:
            type:
              kind: fragment
              value: 'arguments[0]'

  # Change made in https://github.com/flutter/flutter/pull/44189.
  - title: "Migrate to 'findAncestorStateOfType'"
    date: 2019-11-22
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      inClass: 'BuildContext'
      method: 'ancestorStateOfType'
    changes:
      - kind: 'rename'
        newName: 'findAncestorStateOfType'
      - kind: 'removeParameter'
        index: 0
      - kind: 'addTypeParameter'
        index: 0
        name: 'T'
        argumentValue:
          expression: '{% type %}'
          variables:
            type:
              kind: fragment
              value: 'arguments[0].typeArguments[0]'

  # Change made in https://github.com/flutter/flutter/pull/44189.
  - title: "Migrate to 'rootAncestorStateOfType'"
    date: 2019-11-22
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      inClass: 'BuildContext'
      method: 'rootAncestorStateOfType'
    changes:
      - kind: 'rename'
        newName: 'findRootAncestorStateOfType'
      - kind: 'removeParameter'
        index: 0
      - kind: 'addTypeParameter'
        index: 0
        name: 'T'
        argumentValue:
          expression: '{% type %}'
          variables:
            type:
              kind: fragment
              value: 'arguments[0].typeArguments[0]'

  # Change made in https://github.com/flutter/flutter/pull/44189.
  - title: "Migrate to 'ancestorRenderObjectOfType'"
    date: 2019-11-22
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      inClass: 'BuildContext'
      method: 'ancestorRenderObjectOfType'
    changes:
      - kind: 'rename'
        newName: 'findAncestorRenderObjectOfType'
      - kind: 'removeParameter'
        index: 0
      - kind: 'addTypeParameter'
        index: 0
        name: 'T'
        argumentValue:
          expression: '{% type %}'
          variables:
            type:
              kind: fragment
              value: 'arguments[0].typeArguments[0]'

  # Changes made in https://github.com/flutter/flutter/pull/45941
  - title: "Rename to 'deferFirstFrame'"
    date: 2020-12-23
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      method: 'deferFirstFrameReport'
      inClass: 'WidgetsBinding'
    changes:
      - kind: 'rename'
        newName: 'deferFirstFrame'

  # Changes made in https://github.com/flutter/flutter/pull/45941
  - title: "Rename to 'allowFirstFrame'"
    date: 2020-12-23
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      method: 'allowFirstFrameReport'
      inClass: 'WidgetsBinding'
    changes:
      - kind: 'rename'
        newName: 'allowFirstFrame'

  # Changes made in https://github.com/flutter/flutter/pull/44189
  - title: "Rename to 'dependOnInheritedElement'"
    date: 2020-12-23
    element:
      uris: [ 'material.dart', 'cupertino.dart', 'widgets.dart' ]
      method: 'inheritFromElement'
      inClass: 'StatefulElement'
    changes:
      - kind: 'rename'
        newName: 'dependOnInheritedElement'

  # Changes made in https://github.com/flutter/flutter/pull/15303
  - title: "Replace 'child' with 'builder'"
    date: 2020-12-17
    element:
      uris: [ 'material.dart' ]
      function: 'showDialog'
    changes:
      - kind: 'addParameter'
        index: 0
        name: 'builder'
        style: optional_named
        argumentValue:
          expression: '(context) => {% widget %}'
          requiredIf: "widget != ''"
          variables:
            widget:
              kind: fragment
              value: 'arguments[child]'
      - kind: 'removeParameter'
        name: 'child'

  # Changes made in https://github.com/flutter/flutter/pull/28602
  - title: "Rename to 'fromMouseEvent'"
    date: 2020-12-15
    element:
      uris: [ 'gestures.dart' ]
      constructor: 'fromHoverEvent'
      inClass: 'PointerEnterEvent'
    changes:
      - kind: 'rename'
        newName: 'fromMouseEvent'

  # Changes made in https://github.com/flutter/flutter/pull/28602
  - title: "Rename to 'fromMouseEvent'"
    date: 2020-12-15
    element:
      uris: [ 'gestures.dart' ]
      constructor: 'fromHoverEvent'
      inClass: 'PointerExitEvent'
    changes:
      - kind: 'rename'
        newName: 'fromMouseEvent'

  # Changes made in https://github.com/flutter/flutter/pull/41859
  - title: "Remove 'brightness'"
    date: 2020-12-10
    element:
      uris: [ 'cupertino.dart' ]
      constructor: ''
      inClass: 'CupertinoTextThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'brightness'

  # Changes made in https://github.com/flutter/flutter/pull/41859
  - title: "Remove 'brightness'"
    date: 2020-12-10
    element:
      uris: [ 'cupertino.dart' ]
      method: 'copyWith'
      inClass: 'CupertinoTextThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'brightness'

# Before adding a new fix: read instructions at the top of this file.