# 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.

# For details regarding the *Flutter Fix* feature, see
# https://flutter.dev/docs/development/tools/flutter-fix

# 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.

# For documentation about this file format, see
# https://dart.dev/go/data-driven-fixes.

version: 1
transforms:

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'backgroundColor'"
    date: 2021-07-12
    element:
      uris: [ 'material.dart' ]
      getter: color
      inClass: 'AppBarTheme'
    changes:
      - kind: 'rename'
        newName: 'backgroundColor'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Remove 'backwardsCompatibility'"
    date: 2021-07-12
    element:
      uris: [ 'material.dart' ]
      method: 'copyWith'
      inClass: 'AppBarTheme'
    changes:
    - kind: 'removeParameter'
      name: 'backwardsCompatibility'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Remove 'backwardsCompatibility'"
    date: 2020-07-12
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'AppBarTheme'
    changes:
    - kind: 'removeParameter'
      name: 'backwardsCompatibility'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Remove 'backwardsCompatibility'"
    date: 2020-07-12
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'SliverAppBar'
    changes:
    - kind: 'removeParameter'
      name: 'backwardsCompatibility'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Remove 'backwardsCompatibility'"
    date: 2020-07-12
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'AppBar'
    changes:
    - kind: 'removeParameter'
      name: 'backwardsCompatibility'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'toolbarTextStyle' & 'titleTextStyle'"
    date: 2021-07-12
    element:
      uris: [ 'material.dart' ]
      method: 'copyWith'
      inClass: 'AppBarTheme'
    changes:
    - kind: 'addParameter'
      index: 12
      name: 'toolbarTextStyle'
      style: optional_named
      argumentValue:
        expression: '{% textTheme %}.bodyText2'
        requiredIf: "textTheme != ''"
    - kind: 'addParameter'
      index: 13
      name: 'titleTextStyle'
      style: optional_named
      argumentValue:
        expression: '{% textTheme %}.headline6'
        requiredIf: "textTheme != ''"
    - kind: 'removeParameter'
      name: 'textTheme'
    variables:
      textTheme:
        kind: 'fragment'
        value: 'arguments[textTheme]'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'toolbarTextStyle' & 'titleTextStyle'"
    date: 2020-07-12
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'AppBarTheme'
    changes:
    - kind: 'addParameter'
      index: 13
      name: 'toolbarTextStyle'
      style: optional_named
      argumentValue:
        expression: '{% textTheme %}.bodyText2'
        requiredIf: "textTheme != ''"
    - kind: 'addParameter'
      index: 14
      name: 'titleTextStyle'
      style: optional_named
      argumentValue:
        expression: '{% textTheme %}.headline6'
        requiredIf: "textTheme != ''"
    - kind: 'removeParameter'
      name: 'textTheme'
    variables:
      textTheme:
        kind: 'fragment'
        value: 'arguments[textTheme]'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'toolbarTextStyle'"
    date: 2021-07-12
    # TODO(Piinks): Add tests when `bulkApply:false` testing is supported, https://github.com/dart-lang/sdk/issues/44639
    bulkApply: false
    element:
      uris: [ 'material.dart' ]
      field: 'textTheme'
      inClass: 'AppBarTheme'
    changes:
      - kind: 'rename'
        newName: 'toolbarTextStyle'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'titleTextStyle'"
    date: 2021-07-12
    # TODO(Piinks): Add tests when `bulkApply:false` testing is supported, https://github.com/dart-lang/sdk/issues/44639
    bulkApply: false
    element:
      uris: [ 'material.dart' ]
      field: 'textTheme'
      inClass: 'AppBarTheme'
    changes:
      - kind: 'rename'
        newName: 'titleTextStyle'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'toolbarTextStyle' & 'titleTextStyle'"
    date: 2020-07-12
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'SliverAppBar'
    changes:
    - kind: 'addParameter'
      index: 32
      name: 'toolbarTextStyle'
      style: optional_named
      argumentValue:
        expression: '{% textTheme %}.bodyText2'
        requiredIf: "textTheme != ''"
    - kind: 'addParameter'
      index: 33
      name: 'titleTextStyle'
      style: optional_named
      argumentValue:
        expression: '{% textTheme %}.headline6'
        requiredIf: "textTheme != ''"
    - kind: 'removeParameter'
      name: 'textTheme'
    variables:
      textTheme:
        kind: 'fragment'
        value: 'arguments[textTheme]'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'toolbarTextStyle'"
    date: 2021-07-12
    # TODO(Piinks): Add tests when `bulkApply:false` testing is supported, https://github.com/dart-lang/sdk/issues/44639
    bulkApply: false
    element:
      uris: [ 'material.dart' ]
      field: 'textTheme'
      inClass: 'SliverAppBar'
    changes:
      - kind: 'rename'
        newName: 'toolbarTextStyle'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'titleTextStyle'"
    date: 2021-07-12
    # TODO(Piinks): Add tests when `bulkApply:false` testing is supported, https://github.com/dart-lang/sdk/issues/44639
    bulkApply: false
    element:
      uris: [ 'material.dart' ]
      field: 'textTheme'
      inClass: 'SliverAppBar'
    changes:
      - kind: 'rename'
        newName: 'titleTextStyle'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'toolbarTextStyle' & 'titleTextStyle'"
    date: 2020-07-12
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'AppBar'
    changes:
      - kind: 'addParameter'
        index: 24
        name: 'toolbarTextStyle'
        style: optional_named
        argumentValue:
          expression: '{% textTheme %}.bodyText2'
          requiredIf: "textTheme != ''"
      - kind: 'addParameter'
        index: 25
        name: 'titleTextStyle'
        style: optional_named
        argumentValue:
          expression: '{% textTheme %}.headline6'
          requiredIf: "textTheme != ''"
      - kind: 'removeParameter'
        name: 'textTheme'
    variables:
      textTheme:
        kind: 'fragment'
        value: 'arguments[textTheme]'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'toolbarTextStyle'"
    date: 2021-07-12
    # TODO(Piinks): Add tests when `bulkApply:false` testing is supported, https://github.com/dart-lang/sdk/issues/44639
    bulkApply: false
    element:
      uris: [ 'material.dart' ]
      field: 'textTheme'
      inClass: 'AppBar'
    changes:
      - kind: 'rename'
        newName: 'toolbarTextStyle'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'titleTextStyle'"
    date: 2021-07-12
    # TODO(Piinks): Add tests when `bulkApply:false` testing is supported, https://github.com/dart-lang/sdk/issues/44639
    bulkApply: false
    element:
      uris: [ 'material.dart' ]
      field: 'textTheme'
      inClass: 'AppBar'
    changes:
      - kind: 'rename'
        newName: 'titleTextStyle'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'systemOverlayStyle'"
    date: 2021-07-12
    element:
      uris: [ 'material.dart' ]
      method: 'copyWith'
      inClass: 'AppBarTheme'
    oneOf:
    - if: "brightness == 'Brightness.dark'"
      changes:
        - kind: 'addParameter'
          index: 14
          name: 'systemOverlayStyle'
          style: optional_named
          argumentValue:
            expression: '{% SystemUiOverlayStyle %}.light'
            requiredIf: "brightness == 'Brightness.dark'"
            variables:
              SystemUiOverlayStyle:
                kind: 'import'
                uris: [ 'services.dart' ]
                name: 'SystemUiOverlayStyle'
        - kind: 'removeParameter'
          name: 'brightness'
    - if: "brightness == 'Brightness.light'"
      changes:
        - kind: 'addParameter'
          index: 14
          name: 'systemOverlayStyle'
          style: optional_named
          argumentValue:
            expression: '{% SystemUiOverlayStyle %}.dark'
            requiredIf: "brightness == 'Brightness.light'"
            variables:
              SystemUiOverlayStyle:
                kind: 'import'
                uris: [ 'services.dart' ]
                name: 'SystemUiOverlayStyle'
        - kind: 'removeParameter'
          name: 'brightness'
    variables:
      brightness:
        kind: 'fragment'
        value: 'arguments[brightness]'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'systemOverlayStyle'"
    date: 2020-07-12
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'AppBarTheme'
    oneOf:
    - if: "brightness == 'Brightness.dark'"
      changes:
        - kind: 'addParameter'
          index: 14
          name: 'systemOverlayStyle'
          style: optional_named
          argumentValue:
            expression: '{% SystemUiOverlayStyle %}.light'
            requiredIf: "brightness == 'Brightness.dark'"
            variables:
              SystemUiOverlayStyle:
                kind: 'import'
                uris: [ 'services.dart' ]
                name: 'SystemUiOverlayStyle'
        - kind: 'removeParameter'
          name: 'brightness'
    - if: "brightness == 'Brightness.light'"
      changes:
        - kind: 'addParameter'
          index: 14
          name: 'systemOverlayStyle'
          style: optional_named
          argumentValue:
            expression: '{% SystemUiOverlayStyle %}.dark'
            requiredIf: "brightness == 'Brightness.light'"
            variables:
              SystemUiOverlayStyle:
                kind: 'import'
                uris: [ 'services.dart' ]
                name: 'SystemUiOverlayStyle'
        - kind: 'removeParameter'
          name: 'brightness'
    variables:
      brightness:
        kind: 'fragment'
        value: 'arguments[brightness]'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'systemOverlayStyle'"
    date: 2021-07-12
    element:
      uris: [ 'material.dart' ]
      field: 'brightness'
      inClass: 'AppBarTheme'
    changes:
      - kind: 'rename'
        newName: 'systemOverlayStyle'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'systemOverlayStyle'"
    date: 2020-07-12
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'SliverAppBar'
    oneOf:
    - if: "brightness == 'Brightness.dark'"
      changes:
        - kind: 'addParameter'
          index: 34
          name: 'systemOverlayStyle'
          style: optional_named
          argumentValue:
            expression: '{% SystemUiOverlayStyle %}.light'
            requiredIf: "brightness == 'Brightness.dark'"
            variables:
              SystemUiOverlayStyle:
                kind: 'import'
                uris: [ 'services.dart' ]
                name: 'SystemUiOverlayStyle'
        - kind: 'removeParameter'
          name: 'brightness'
    - if: "brightness == 'Brightness.light'"
      changes:
        - kind: 'addParameter'
          index: 34
          name: 'systemOverlayStyle'
          style: optional_named
          argumentValue:
            expression: '{% SystemUiOverlayStyle %}.dark'
            requiredIf: "brightness == 'Brightness.light'"
            variables:
              SystemUiOverlayStyle:
                kind: 'import'
                uris: [ 'services.dart' ]
                name: 'SystemUiOverlayStyle'
        - kind: 'removeParameter'
          name: 'brightness'
    variables:
      brightness:
        kind: 'fragment'
        value: 'arguments[brightness]'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'systemOverlayStyle'"
    date: 2021-07-12
    element:
      uris: [ 'material.dart' ]
      field: 'brightness'
      inClass: 'SliverAppBar'
    changes:
      - kind: 'rename'
        newName: 'systemOverlayStyle'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'systemOverlayStyle'"
    date: 2020-07-12
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'AppBar'
    oneOf:
    - if: "brightness == 'Brightness.dark'"
      changes:
        - kind: 'addParameter'
          index: 27
          name: 'systemOverlayStyle'
          style: optional_named
          argumentValue:
            expression: '{% SystemUiOverlayStyle %}.light'
            requiredIf: "brightness == 'Brightness.dark'"
            variables:
              SystemUiOverlayStyle:
                kind: 'import'
                uris: [ 'services.dart' ]
                name: 'SystemUiOverlayStyle'
        - kind: 'removeParameter'
          name: 'brightness'
    - if: "brightness == 'Brightness.light'"
      changes:
        - kind: 'addParameter'
          index: 27
          name: 'systemOverlayStyle'
          style: optional_named
          argumentValue:
            expression: '{% SystemUiOverlayStyle %}.dark'
            requiredIf: "brightness == 'Brightness.light'"
            variables:
              SystemUiOverlayStyle:
                kind: 'import'
                uris: [ 'services.dart' ]
                name: 'SystemUiOverlayStyle'
        - kind: 'removeParameter'
          name: 'brightness'
    variables:
      brightness:
        kind: 'fragment'
        value: 'arguments[brightness]'

  # Changes made in https://github.com/flutter/flutter/pull/86198
  - title: "Migrate to 'systemOverlayStyle'"
    date: 2021-07-12
    element:
      uris: [ 'material.dart' ]
      field: 'brightness'
      inClass: 'AppBar'
    changes:
      - kind: 'rename'
        newName: 'systemOverlayStyle'

  # Changes made in https://github.com/flutter/flutter/pull/87839
  - title: "Migrate to 'disallowIndicator'"
    date: 2021-08-06
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      method: 'disallowGlow'
      inClass: 'OverscrollIndicatorNotification'
    changes:
      - kind: 'rename'
        newName: 'disallowIndicator'

  # Changes made in https://github.com/flutter/flutter/pull/87281
  - title: "Remove 'fixTextFieldOutlineLabel'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      method: 'copyWith'
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'fixTextFieldOutlineLabel'

  # Changes made in https://github.com/flutter/flutter/pull/87281
  - title: "Remove 'fixTextFieldOutlineLabel'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      constructor: 'raw'
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'fixTextFieldOutlineLabel'

  # Changes made in https://github.com/flutter/flutter/pull/87281
  - title: "Remove 'fixTextFieldOutlineLabel'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'fixTextFieldOutlineLabel'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Remove 'buttonColor'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      method: 'copyWith'
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'buttonColor'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Remove 'buttonColor'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      constructor: 'raw'
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'buttonColor'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Remove 'buttonColor'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'buttonColor'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Remove 'accentIconTheme'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      method: 'copyWith'
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'accentIconTheme'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Remove 'accentIconTheme'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      constructor: 'raw'
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'accentIconTheme'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Remove 'accentIconTheme'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'accentIconTheme'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Remove 'accentTextTheme'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      method: 'copyWith'
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'accentTextTheme'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Remove 'accentTextTheme'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      constructor: 'raw'
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'accentTextTheme'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Remove 'accentTextTheme'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'accentTextTheme'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Remove 'accentColorBrightness'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      method: 'copyWith'
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'accentColorBrightness'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Remove 'accentColorBrightness'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      constructor: 'raw'
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'accentColorBrightness'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Remove 'accentColorBrightness'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'ThemeData'
    changes:
      - kind: 'removeParameter'
        name: 'accentColorBrightness'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Migrate to 'ColorScheme.secondary'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      field: 'accentColor'
      inClass: 'ThemeData'
    changes:
      - kind: 'rename'
        newName: 'colorScheme.secondary'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Migrate to 'ColorScheme.secondary'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      method: 'copyWith'
      inClass: 'ThemeData'
    oneOf:
    - if: "accentColor != '' && primarySwatch == '' && colorScheme == ''"
      changes:
      - kind: 'addParameter'
        index: 56
        name: 'colorScheme'
        style: optional_named
        argumentValue:
          expression: 'ColorScheme.fromSwatch().copyWith(secondary: {% accentColor %})'
          requiredIf: "accentColor != '' && primarySwatch == '' && colorScheme ==''"
      - kind: 'removeParameter'
        name: 'accentColor'
    - if: "accentColor != '' && primarySwatch != '' && colorScheme == ''"
      changes:
      - kind: 'addParameter'
        index: 56
        name: 'colorScheme'
        style: optional_named
        argumentValue:
          expression: 'ColorScheme.fromSwatch(primarySwatch: {% primarySwatch %}).copyWith(secondary: {% accentColor %})'
          requiredIf: "accentColor != '' && primarySwatch != '' && colorScheme == ''"
      - kind: 'removeParameter'
        name: 'accentColor'
      - kind: 'removeParameter'
        name: 'primarySwatch'
    - if: "accentColor != '' && primarySwatch == '' && colorScheme != ''"
      changes:
      - kind: 'removeParameter'
        name: 'colorScheme' # Remove to add back with modification
      - kind: 'addParameter'
        index: 56
        name: 'colorScheme'
        style: optional_named
        argumentValue:
          expression: '{% colorScheme %}.copyWith(secondary: {% accentColor %})'
          requiredIf: "accentColor != '' && primarySwatch == '' && colorScheme != ''"
      - kind: 'removeParameter'
        name: 'accentColor'
    - if: "accentColor != '' && primarySwatch != '' && colorScheme != ''"
      changes:
      - kind: 'removeParameter'
        name: 'colorScheme' # Remove to add back with modification
      - kind: 'addParameter'
        index: 56
        name: 'colorScheme'
        style: optional_named
        argumentValue:
          expression: '{% colorScheme %}.copyWith(primarySwatch: {% primarySwatch %}, secondary: {% accentColor %})'
          requiredIf: "accentColor != '' && primarySwatch != '' && colorScheme != ''"
      - kind: 'removeParameter'
        name: 'accentColor'
      - kind: 'removeParameter'
        name: 'primarySwatch'
    variables:
      accentColor:
        kind: 'fragment'
        value: 'arguments[accentColor]'
      primarySwatch:
        kind: 'fragment'
        value: 'arguments[primarySwatch]'
      colorScheme:
        kind: 'fragment'
        value: 'arguments[colorScheme]'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Migrate to 'ColorScheme.secondary'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      constructor: 'raw'
      inClass: 'ThemeData'
    oneOf:
    - if: "accentColor != '' && primarySwatch == '' && colorScheme == ''"
      changes:
      - kind: 'addParameter'
        index: 56
        name: 'colorScheme'
        style: optional_named
        argumentValue:
          expression: 'ColorScheme.fromSwatch().copyWith(secondary: {% accentColor %})'
          requiredIf: "accentColor != '' && primarySwatch == '' && colorScheme ==''"
      - kind: 'removeParameter'
        name: 'accentColor'
    - if: "accentColor != '' && primarySwatch != '' && colorScheme == ''"
      changes:
      - kind: 'addParameter'
        index: 56
        name: 'colorScheme'
        style: optional_named
        argumentValue:
          expression: 'ColorScheme.fromSwatch(primarySwatch: {% primarySwatch %}).copyWith(secondary: {% accentColor %})'
          requiredIf: "accentColor != '' && primarySwatch != '' && colorScheme == ''"
      - kind: 'removeParameter'
        name: 'accentColor'
      - kind: 'removeParameter'
        name: 'primarySwatch'
    - if: "accentColor != '' && primarySwatch == '' && colorScheme != ''"
      changes:
      - kind: 'removeParameter'
        name: 'colorScheme' # Remove to add back with modification
      - kind: 'addParameter'
        index: 56
        name: 'colorScheme'
        style: optional_named
        argumentValue:
          expression: '{% colorScheme %}.copyWith(secondary: {% accentColor %})'
          requiredIf: "accentColor != '' && primarySwatch == '' && colorScheme != ''"
      - kind: 'removeParameter'
        name: 'accentColor'
    - if: "accentColor != '' && primarySwatch != '' && colorScheme != ''"
      changes:
      - kind: 'removeParameter'
        name: 'colorScheme' # Remove to add back with modification
      - kind: 'addParameter'
        index: 56
        name: 'colorScheme'
        style: optional_named
        argumentValue:
          expression: '{% colorScheme %}.copyWith(primarySwatch: {% primarySwatch %}, secondary: {% accentColor %})'
          requiredIf: "accentColor != '' && primarySwatch != '' && colorScheme != ''"
      - kind: 'removeParameter'
        name: 'accentColor'
      - kind: 'removeParameter'
        name: 'primarySwatch'
    variables:
      accentColor:
        kind: 'fragment'
        value: 'arguments[accentColor]'
      primarySwatch:
        kind: 'fragment'
        value: 'arguments[primarySwatch]'
      colorScheme:
        kind: 'fragment'
        value: 'arguments[colorScheme]'

  # Changes made in https://github.com/flutter/flutter/pull/81336
  - title: "Migrate to 'ColorScheme.secondary'"
    date: 2021-04-30
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'ThemeData'
    oneOf:
    - if: "accentColor != '' && primarySwatch == '' && colorScheme == ''"
      changes:
        - kind: 'addParameter'
          index: 56
          name: 'colorScheme'
          style: optional_named
          argumentValue:
            expression: 'ColorScheme.fromSwatch().copyWith(secondary: {% accentColor %})'
            requiredIf: "accentColor != '' && primarySwatch == '' && colorScheme ==''"
        - kind: 'removeParameter'
          name: 'accentColor'
    - if: "accentColor != '' && primarySwatch != '' && colorScheme == ''"
      changes:
      - kind: 'addParameter'
        index: 56
        name: 'colorScheme'
        style: optional_named
        argumentValue:
          expression: 'ColorScheme.fromSwatch(primarySwatch: {% primarySwatch %}).copyWith(secondary: {% accentColor %})'
          requiredIf: "accentColor != '' && primarySwatch != '' && colorScheme == ''"
      - kind: 'removeParameter'
        name: 'accentColor'
      - kind: 'removeParameter'
        name: 'primarySwatch'
    - if: "accentColor != '' && primarySwatch == '' && colorScheme != ''"
      changes:
      - kind: 'removeParameter'
        name: 'colorScheme' # Remove to add back with modification
      - kind: 'addParameter'
        index: 56
        name: 'colorScheme'
        style: optional_named
        argumentValue:
          expression: '{% colorScheme %}.copyWith(secondary: {% accentColor %})'
          requiredIf: "accentColor != '' && primarySwatch == '' && colorScheme != ''"
      - kind: 'removeParameter'
        name: 'accentColor'
    - if: "accentColor != '' && primarySwatch != '' && colorScheme != ''"
      changes:
      - kind: 'removeParameter'
        name: 'colorScheme' # Remove to add back with modification
      - kind: 'addParameter'
        index: 56
        name: 'colorScheme'
        style: optional_named
        argumentValue:
          expression: '{% colorScheme %}.copyWith(primarySwatch: {% primarySwatch %}, secondary: {% accentColor %})'
          requiredIf: "accentColor != '' && primarySwatch != '' && colorScheme != ''"
      - kind: 'removeParameter'
        name: 'accentColor'
      - kind: 'removeParameter'
        name: 'primarySwatch'
    variables:
      accentColor:
        kind: 'fragment'
        value: 'arguments[accentColor]'
      primarySwatch:
        kind: 'fragment'
        value: 'arguments[primarySwatch]'
      colorScheme:
        kind: 'fragment'
        value: 'arguments[colorScheme]'

  # Changes made in https://flutter.dev/docs/release/breaking-changes/clip-behavior
  - title: "Migrate to 'clipBehavior'"
    date: 2020-08-20
    element:
      uris: [ 'rendering.dart' ]
      field: 'clipToSize'
      inClass: 'RenderListWheelViewport'
    changes:
      - kind: 'rename'
        newName: 'clipBehavior'

  # Changes made in https://flutter.dev/docs/release/breaking-changes/clip-behavior
  - title: "Migrate to 'clipBehavior'"
    date: 2020-08-20
    element:
      uris: [ 'rendering.dart' ]
      constructor: ''
      inClass: 'RenderListWheelViewport'
    oneOf:
    - if: "clipToSize == 'true'"
      changes:
        - kind: 'addParameter'
          index: 13
          name: 'clipBehavior'
          style: optional_named
          argumentValue:
            expression: 'Clip.hardEdge'
            requiredIf: "clipToSize == 'true'"
        - kind: 'removeParameter'
          name: 'clipToSize'
    - if: "clipToSize == 'false'"
      changes:
        - kind: 'addParameter'
          index: 13
          name: 'clipBehavior'
          style: optional_named
          argumentValue:
            expression: 'Clip.none'
            requiredIf: "clipToSize == 'false'"
        - kind: 'removeParameter'
          name: 'clipToSize'
    variables:
      clipToSize:
        kind: 'fragment'
        value: 'arguments[clipToSize]'

  # Changes made in https://flutter.dev/docs/release/breaking-changes/clip-behavior
  - title: "Migrate to 'clipBehavior'"
    date: 2020-08-20
    element:
      uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
      field: 'clipToSize'
      inClass: 'ListWheelViewport'
    changes:
    - kind: 'rename'
      newName: 'clipBehavior'

  # Changes made in https://flutter.dev/docs/release/breaking-changes/clip-behavior
  - title: "Migrate to 'clipBehavior'"
    date: 2020-08-20
    element:
      uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
      constructor: ''
      inClass: 'ListWheelViewport'
    oneOf:
    - if: "clipToSize == 'true'"
      changes:
      - kind: 'addParameter'
        index: 13
        name: 'clipBehavior'
        style: optional_named
        argumentValue:
          expression: 'Clip.hardEdge'
          requiredIf: "clipToSize == 'true'"
      - kind: 'removeParameter'
        name: 'clipToSize'
    - if: "clipToSize == 'false'"
      changes:
      - kind: 'addParameter'
        index: 13
        name: 'clipBehavior'
        style: optional_named
        argumentValue:
          expression: 'Clip.none'
          requiredIf: "clipToSize == 'false'"
      - kind: 'removeParameter'
        name: 'clipToSize'
    variables:
      clipToSize:
        kind: 'fragment'
        value: 'arguments[clipToSize]'

  # Changes made in https://flutter.dev/docs/release/breaking-changes/clip-behavior
  - title: "Migrate to 'clipBehavior'"
    date: 2020-08-20
    element:
      uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
      constructor: 'useDelegate'
      inClass: 'ListWheelScrollView'
    oneOf:
    - if: "clipToSize == 'true'"
      changes:
        - kind: 'addParameter'
          index: 13
          name: 'clipBehavior'
          style: optional_named
          argumentValue:
            expression: 'Clip.hardEdge'
            requiredIf: "clipToSize == 'true'"
        - kind: 'removeParameter'
          name: 'clipToSize'
    - if: "clipToSize == 'false'"
      changes:
        - kind: 'addParameter'
          index: 13
          name: 'clipBehavior'
          style: optional_named
          argumentValue:
            expression: 'Clip.none'
            requiredIf: "clipToSize == 'false'"
        - kind: 'removeParameter'
          name: 'clipToSize'
    variables:
      clipToSize:
        kind: 'fragment'
        value: 'arguments[clipToSize]'

  # Changes made in https://flutter.dev/docs/release/breaking-changes/clip-behavior
  - title: "Migrate to 'clipBehavior'"
    date: 2020-08-20
    element:
      uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
      field: 'clipToSize'
      inClass: 'ListWheelScrollView'
    changes:
      - kind: 'rename'
        newName: 'clipBehavior'

  # Changes made in https://flutter.dev/docs/release/breaking-changes/clip-behavior
  - title: "Migrate to 'clipBehavior'"
    date: 2020-08-20
    element:
      uris: [ 'widgets.dart', 'material.dart', 'cupertino.dart' ]
      constructor: ''
      inClass: 'ListWheelScrollView'
    oneOf:
    - if: "clipToSize == 'true'"
      changes:
        - kind: 'addParameter'
          index: 13
          name: 'clipBehavior'
          style: optional_named
          argumentValue:
            expression: 'Clip.hardEdge'
            requiredIf: "clipToSize == 'true'"
        - kind: 'removeParameter'
          name: 'clipToSize'
    - if: "clipToSize == 'false'"
      changes:
        - kind: 'addParameter'
          index: 13
          name: 'clipBehavior'
          style: optional_named
          argumentValue:
            expression: 'Clip.none'
            requiredIf: "clipToSize == 'false'"
        - kind: 'removeParameter'
          name: 'clipToSize'
    variables:
      clipToSize:
        kind: 'fragment'
        value: 'arguments[clipToSize]'

  # Changes made in https://github.com/flutter/flutter/pull/66305
  - title: "Migrate to 'clipBehavior'"
    date: 2020-09-22
    element:
      uris: [ 'rendering.dart' ]
      field: 'overflow'
      inClass: 'RenderStack'
    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: [ 'rendering.dart' ]
      constructor: ''
      inClass: 'RenderStack'
    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]'

  # Changes made in https://github.com/flutter/flutter/pull/81303
  - title: "Migrate to 'setEnabledSystemUIMode'"
    date: 2021-06-08
    element:
      uris: [ 'services.dart' ]
      method: 'setEnabledSystemUIOverlays'
      inClass: 'SystemChrome'
    changes:
      - kind: 'rename'
        newName: 'setEnabledSystemUIMode'
      - kind: 'removeParameter'
        index: 0
      - kind: 'addParameter'
        index: 0
        name: 'mode'
        style: required_positional
        argumentValue:
          expression: 'SystemUiMode.manual'
      - kind: 'addParameter'
        index: 1
        name: 'overlays'
        style: optional_named
        argumentValue:
          expression: '{% overlays %}'
          requiredIf: "overlays != ''"
    variables:
      overlays:
        kind: 'fragment'
        value: 'arguments[0]'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'removeRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'removeChildRenderObject'
      inClass: 'RenderObjectToWidgetElement'
    changes:
      - kind: 'rename'
        newName: 'removeRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'moveRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'moveChildRenderObject'
      inClass: 'RenderObjectToWidgetElement'
    changes:
      - kind: 'rename'
        newName: 'moveRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'insertRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'insertChildRenderObject'
      inClass: 'RenderObjectToWidgetElement'
    changes:
      - kind: 'rename'
        newName: 'insertRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'removeRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'removeChildRenderObject'
      inClass: 'SliverMultiBoxAdaptorElement'
    changes:
      - kind: 'rename'
        newName: 'removeRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'moveRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'moveChildRenderObject'
      inClass: 'SliverMultiBoxAdaptorElement'
    changes:
      - kind: 'rename'
        newName: 'moveRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'insertRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'insertChildRenderObject'
      inClass: 'SliverMultiBoxAdaptorElement'
    changes:
      - kind: 'rename'
        newName: 'insertRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'removeRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'removeChildRenderObject'
      inClass: 'SingleChildRenderObjectElement'
    changes:
      - kind: 'rename'
        newName: 'removeRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'moveRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'moveChildRenderObject'
      inClass: 'SingleChildRenderObjectElement'
    changes:
      - kind: 'rename'
        newName: 'moveRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'insertRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'insertChildRenderObject'
      inClass: 'SingleChildRenderObjectElement'
    changes:
      - kind: 'rename'
        newName: 'insertRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'removeRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'removeChildRenderObject'
      inClass: 'MultiChildRenderObjectElement'
    changes:
      - kind: 'rename'
        newName: 'removeRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'moveRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'moveChildRenderObject'
      inClass: 'MultiChildRenderObjectElement'
    changes:
      - kind: 'rename'
        newName: 'moveRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'insertRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'insertChildRenderObject'
      inClass: 'MultiChildRenderObjectElement'
    changes:
      - kind: 'rename'
        newName: 'insertRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'removeRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'removeChildRenderObject'
      inClass: 'ListWheelElement'
    changes:
      - kind: 'rename'
        newName: 'removeRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'moveRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'moveChildRenderObject'
      inClass: 'ListWheelElement'
    changes:
      - kind: 'rename'
        newName: 'moveRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'insertRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'insertChildRenderObject'
      inClass: 'ListWheelElement'
    changes:
      - kind: 'rename'
        newName: 'insertRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'removeRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'removeChildRenderObject'
      inClass: 'LeafRenderObjectElement'
    changes:
      - kind: 'rename'
        newName: 'removeRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'moveRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'moveChildRenderObject'
      inClass: 'LeafRenderObjectElement'
    changes:
      - kind: 'rename'
        newName: 'moveRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/64254
  - title: "Migrate to 'insertRenderObjectChild'"
    date: 2020-08-20
    element:
      uris: [ 'cupertino.dart', 'widgets.dart', 'material.dart' ]
      method: 'insertChildRenderObject'
      inClass: 'LeafRenderObjectElement'
    changes:
      - kind: 'rename'
        newName: 'insertRenderObjectChild'

  # Changes made in https://github.com/flutter/flutter/pull/60320
  - title: "Migrate to 'viewId'"
    date: 2020-07-05
    element:
      uris: [ 'services.dart' ]
      getter: id
      inClass: 'TextureAndroidViewController'
    changes:
      - kind: 'rename'
        newName: 'viewId'

  # Changes made in https://github.com/flutter/flutter/pull/60320
  - title: "Migrate to 'viewId'"
    date: 2020-07-05
    element:
      uris: [ 'services.dart' ]
      getter: id
      inClass: 'SurfaceAndroidViewController'
    changes:
      - kind: 'rename'
        newName: 'viewId'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'ScaleGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 3
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'MultiTapGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 4
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'DoubleTapGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 3
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'DelayedMultiDragGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 4
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'VerticalMultiDragGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 3
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'HorizontalMultiDragGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 3
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'ImmediateMultiDragGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 3
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'MultiDragGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 3
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'LongPressGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 4
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'ForcePressGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 6
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'EagerGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 2
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'PrimaryPointerGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 6
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'OneSequenceGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 3
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'GestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 3
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'HorizontalDragGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 3
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'VerticalDragGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 3
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/81858
  - title: "Migrate to 'supportedDevices'"
    date: 2021-05-04
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'DragGestureRecognizer'
    oneOf:
      - if: "kind != ''"
        changes:
          - kind: 'addParameter'
            index: 5
            name: 'supportedDevices'
            style: optional_named
            argumentValue:
              expression: '<PointerDeviceKind>{{% kind %}}'
              requiredIf: "kind != ''"
          - kind: 'removeParameter'
            name: 'kind'
    variables:
      kind:
        kind: 'fragment'
        value: 'arguments[kind]'

  # Changes made in https://github.com/flutter/flutter/pull/79160
  - title: "Migrate to 'dragAnchorStrategy'"
    date: 2021-04-05
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      field: 'dragAnchor'
      inClass: 'Draggable'
    changes:
      - kind: 'rename'
        newName: 'dragAnchorStrategy'

  # Changes made in https://github.com/flutter/flutter/pull/79160
  - title: "Migrate to 'dragAnchorStrategy'"
    date: 2021-04-05
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      constructor: ''
      inClass: 'Draggable'
    oneOf:
      - if: "dragAnchor == 'DragAnchor.child'"
        changes:
          - kind: 'addParameter'
            index: 9
            name: 'dragAnchorStrategy'
            style: optional_named
            argumentValue:
              expression: 'childDragAnchorStrategy'
              requiredIf: "dragAnchor == 'DragAnchor.child'"
          - kind: 'removeParameter'
            name: 'dragAnchor'
      - if: "dragAnchor == 'DragAnchor.pointer'"
        changes:
          - kind: 'addParameter'
            index: 9
            name: 'dragAnchorStrategy'
            style: optional_named
            argumentValue:
              expression: 'pointerDragAnchorStrategy'
              requiredIf: "dragAnchor == 'DragAnchor.pointer'"
          - kind: 'removeParameter'
            name: 'dragAnchor'
    variables:
      dragAnchor:
        kind: 'fragment'
        value: 'arguments[dragAnchor]'

  # Changes made in https://github.com/flutter/flutter/pull/79160
  - title: "Migrate to 'dragAnchorStrategy'"
    date: 2021-04-05
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      field: 'dragAnchor'
      inClass: 'LongPressDraggable'
    changes:
      - kind: 'rename'
        newName: 'dragAnchorStrategy'

  # Changes made in https://github.com/flutter/flutter/pull/79160
  - title: "Migrate to 'dragAnchorStrategy'"
    date: 2021-04-05
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      constructor: ''
      inClass: 'LongPressDraggable'
    oneOf:
      - if: "dragAnchor == 'DragAnchor.child'"
        changes:
          - kind: 'addParameter'
            index: 9
            name: 'dragAnchorStrategy'
            style: optional_named
            argumentValue:
              expression: 'childDragAnchorStrategy'
              requiredIf: "dragAnchor == 'DragAnchor.child'"
          - kind: 'removeParameter'
            name: 'dragAnchor'
      - if: "dragAnchor == 'DragAnchor.pointer'"
        changes:
          - kind: 'addParameter'
            index: 9
            name: 'dragAnchorStrategy'
            style: optional_named
            argumentValue:
              expression: 'pointerDragAnchorStrategy'
              requiredIf: "dragAnchor == 'DragAnchor.pointer'"
          - kind: 'removeParameter'
            name: 'dragAnchor'
    variables:
      dragAnchor:
        kind: 'fragment'
        value: 'arguments[dragAnchor]'

  # Changes made in https://github.com/flutter/flutter/pull/66482
  - title: "Migrate to 'TextSelectionThemeData'"
    date: 2020-09-24
    element:
      uris: [ 'material.dart' ]
      constructor: 'raw'
      inClass: 'ThemeData'
    oneOf:
      - if: "textSelectionColor != '' && cursorColor != '' && textSelectionHandleColor != ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(cursorColor: {% cursorColor %}, selectionColor: {% textSelectionColor %}, selectionHandleColor: {% textSelectionHandleColor %},)'
              requiredIf: "textSelectionColor != '' && cursorColor != '' && textSelectionHandleColor != ''"
          - kind: 'removeParameter'
            name: 'textSelectionColor'
          - kind: 'removeParameter'
            name: 'cursorColor'
          - kind: 'removeParameter'
            name: 'textSelectionHandleColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "textSelectionColor == '' && cursorColor != '' && textSelectionHandleColor != ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(cursorColor: {% cursorColor %}, selectionHandleColor: {% textSelectionHandleColor %},)'
              requiredIf: "textSelectionColor == '' && cursorColor != '' && textSelectionHandleColor != ''"
          - kind: 'removeParameter'
            name: 'cursorColor'
          - kind: 'removeParameter'
            name: 'textSelectionHandleColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "textSelectionColor != '' && cursorColor != '' && textSelectionHandleColor == ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(cursorColor: {% cursorColor %}, selectionColor: {% textSelectionColor %},)'
              requiredIf: "textSelectionColor != '' && cursorColor != '' && textSelectionHandleColor == ''"
          - kind: 'removeParameter'
            name: 'textSelectionColor'
          - kind: 'removeParameter'
            name: 'cursorColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "textSelectionColor != '' && cursorColor == '' && textSelectionHandleColor != ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(selectionColor: {% textSelectionColor %}, selectionHandleColor: {% textSelectionHandleColor %},)'
              requiredIf: "textSelectionColor != '' && cursorColor == '' && textSelectionHandleColor != ''"
          - kind: 'removeParameter'
            name: 'textSelectionColor'
          - kind: 'removeParameter'
            name: 'textSelectionHandleColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "textSelectionColor == '' && cursorColor != '' && textSelectionHandleColor == ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(cursorColor: {% cursorColor %})'
              requiredIf: "textSelectionColor == '' && cursorColor != '' && textSelectionHandleColor == ''"
          - kind: 'removeParameter'
            name: 'cursorColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "textSelectionColor != '' && cursorColor == '' && textSelectionHandleColor == ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(selectionColor: {% textSelectionColor %})'
              requiredIf: "textSelectionColor != '' && cursorColor == '' && textSelectionHandleColor == ''"
          - kind: 'removeParameter'
            name: 'textSelectionColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "textSelectionColor == '' && cursorColor == '' && textSelectionHandleColor != ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(selectionHandleColor: {% textSelectionHandleColor %})'
              requiredIf: "textSelectionColor == '' && cursorColor == '' && textSelectionHandleColor != ''"
          - kind: 'removeParameter'
            name: 'textSelectionHandleColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "useTextSelectionTheme != ''"
        changes:
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
    variables:
      textSelectionColor:
        kind: 'fragment'
        value: 'arguments[textSelectionColor]'
      cursorColor:
        kind: 'fragment'
        value: 'arguments[cursorColor]'
      textSelectionHandleColor:
        kind: 'fragment'
        value: 'arguments[textSelectionHandleColor]'
      useTextSelectionTheme:
        kind: 'fragment'
        value: 'arguments[useTextSelectionTheme]'

  # Changes made in https://github.com/flutter/flutter/pull/66482
  - title: "Migrate to 'TextSelectionThemeData'"
    date: 2020-09-24
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'ThemeData'
    oneOf:
      - if: "textSelectionColor != '' && cursorColor != '' && textSelectionHandleColor != ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(cursorColor: {% cursorColor %}, selectionColor: {% textSelectionColor %}, selectionHandleColor: {% textSelectionHandleColor %},)'
              requiredIf: "textSelectionColor != '' && cursorColor != '' && textSelectionHandleColor != ''"
          - kind: 'removeParameter'
            name: 'textSelectionColor'
          - kind: 'removeParameter'
            name: 'cursorColor'
          - kind: 'removeParameter'
            name: 'textSelectionHandleColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "textSelectionColor == '' && cursorColor != '' && textSelectionHandleColor != ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(cursorColor: {% cursorColor %}, selectionHandleColor: {% textSelectionHandleColor %},)'
              requiredIf: "textSelectionColor == '' && cursorColor != '' && textSelectionHandleColor != ''"
          - kind: 'removeParameter'
            name: 'cursorColor'
          - kind: 'removeParameter'
            name: 'textSelectionHandleColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "textSelectionColor != '' && cursorColor != '' && textSelectionHandleColor == ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(cursorColor: {% cursorColor %}, selectionColor: {% textSelectionColor %},)'
              requiredIf: "textSelectionColor != '' && cursorColor != '' && textSelectionHandleColor == ''"
          - kind: 'removeParameter'
            name: 'textSelectionColor'
          - kind: 'removeParameter'
            name: 'cursorColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "textSelectionColor != '' && cursorColor == '' && textSelectionHandleColor != ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(selectionColor: {% textSelectionColor %}, selectionHandleColor: {% textSelectionHandleColor %},)'
              requiredIf: "textSelectionColor != '' && cursorColor == '' && textSelectionHandleColor != ''"
          - kind: 'removeParameter'
            name: 'textSelectionColor'
          - kind: 'removeParameter'
            name: 'textSelectionHandleColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "textSelectionColor == '' && cursorColor != '' && textSelectionHandleColor == ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(cursorColor: {% cursorColor %})'
              requiredIf: "textSelectionColor == '' && cursorColor != '' && textSelectionHandleColor == ''"
          - kind: 'removeParameter'
            name: 'cursorColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "textSelectionColor != '' && cursorColor == '' && textSelectionHandleColor == ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(selectionColor: {% textSelectionColor %})'
              requiredIf: "textSelectionColor != '' && cursorColor == '' && textSelectionHandleColor == ''"
          - kind: 'removeParameter'
            name: 'textSelectionColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "textSelectionColor == '' && cursorColor == '' && textSelectionHandleColor != ''"
        changes:
          - kind: 'addParameter'
            index: 73
            name: 'textSelectionTheme'
            style: optional_named
            argumentValue:
              expression: 'TextSelectionThemeData(selectionHandleColor: {% textSelectionHandleColor %})'
              requiredIf: "textSelectionColor == '' && cursorColor == '' && textSelectionHandleColor != ''"
          - kind: 'removeParameter'
            name: 'textSelectionHandleColor'
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
      - if: "useTextSelectionTheme != ''"
        changes:
          - kind: 'removeParameter'
            name: 'useTextSelectionTheme'
    variables:
      textSelectionColor:
        kind: 'fragment'
        value: 'arguments[textSelectionColor]'
      cursorColor:
        kind: 'fragment'
        value: 'arguments[cursorColor]'
      textSelectionHandleColor:
        kind: 'fragment'
        value: 'arguments[textSelectionHandleColor]'
      useTextSelectionTheme:
        kind: 'fragment'
        value: 'arguments[useTextSelectionTheme]'

  # Changes made in https://github.com/flutter/flutter/pull/65246
  - title: "Remove 'disabledThumbGapWidth'"
    date: 2020-11-17
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'RectangularSliderTrackShape'
    changes:
      - kind: 'removeParameter'
        name: 'disabledThumbGapWidth'

  # Changes made in https://github.com/flutter/flutter/pull/46115
  - title: "Migrate to 'floatingLabelBehavior'"
    date: 2020-01-15
    element:
      uris: [ 'material.dart' ]
      field: 'hasFloatingPlaceholder'
      inClass: 'InputDecorationTheme'
    changes:
      - kind: 'rename'
        newName: 'floatingLabelBehavior'

  # Changes made in https://github.com/flutter/flutter/pull/46115
  - title: "Migrate to 'floatingLabelBehavior'"
    date: 2020-01-15
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'InputDecorationTheme'
    oneOf:
      - if: "hasFloatingPlaceholder == 'true'"
        changes:
          - kind: 'addParameter'
            index: 14
            name: 'floatingLabelBehavior'
            style: optional_named
            argumentValue:
              expression: '{% FloatingLabelBehavior %}.auto'
              requiredIf: "hasFloatingPlaceholder == 'true'"
              variables:
                FloatingLabelBehavior:
                  kind: 'import'
                  uris: [ 'material.dart' ]
                  name: 'FloatingLabelBehavior'
          - kind: 'removeParameter'
            name: 'hasFloatingPlaceholder'
      - if: "hasFloatingPlaceholder == 'false'"
        changes:
          - kind: 'addParameter'
            index: 14
            name: 'floatingLabelBehavior'
            style: optional_named
            argumentValue:
              expression: '{% FloatingLabelBehavior %}.never'
              requiredIf: "hasFloatingPlaceholder == 'false'"
              variables:
                FloatingLabelBehavior:
                  kind: 'import'
                  uris: [ 'material.dart' ]
                  name: 'FloatingLabelBehavior'
          - kind: 'removeParameter'
            name: 'hasFloatingPlaceholder'
    variables:
      hasFloatingPlaceholder:
        kind: 'fragment'
        value: 'arguments[hasFloatingPlaceholder]'

  # Changes made in https://github.com/flutter/flutter/pull/46115
  - title: "Migrate to 'floatingLabelBehavior'"
    date: 2020-01-15
    element:
      uris: [ 'material.dart' ]
      method: 'copyWith'
      inClass: 'InputDecorationTheme'
    oneOf:
      - if: "hasFloatingPlaceholder == 'true'"
        changes:
          - kind: 'addParameter'
            index: 14
            name: 'floatingLabelBehavior'
            style: optional_named
            argumentValue:
              expression: '{% FloatingLabelBehavior %}.auto'
              requiredIf: "hasFloatingPlaceholder == 'true'"
              variables:
                FloatingLabelBehavior:
                  kind: 'import'
                  uris: [ 'material.dart' ]
                  name: 'FloatingLabelBehavior'
          - kind: 'removeParameter'
            name: 'hasFloatingPlaceholder'
      - if: "hasFloatingPlaceholder == 'false'"
        changes:
          - kind: 'addParameter'
            index: 14
            name: 'floatingLabelBehavior'
            style: optional_named
            argumentValue:
              expression: '{% FloatingLabelBehavior %}.never'
              requiredIf: "hasFloatingPlaceholder == 'false'"
              variables:
                FloatingLabelBehavior:
                  kind: 'import'
                  uris: [ 'material.dart' ]
                  name: 'FloatingLabelBehavior'
          - kind: 'removeParameter'
            name: 'hasFloatingPlaceholder'
    variables:
      hasFloatingPlaceholder:
        kind: 'fragment'
        value: 'arguments[hasFloatingPlaceholder]'

  # Changes made in https://github.com/flutter/flutter/pull/46115
  - title: "Migrate to 'floatingLabelBehavior'"
    date: 2020-01-15
    element:
      uris: [ 'material.dart' ]
      field: 'hasFloatingPlaceholder'
      inClass: 'InputDecoration'
    changes:
      - kind: 'rename'
        newName: 'floatingLabelBehavior'

  # Changes made in https://github.com/flutter/flutter/pull/46115
  - title: "Rename to 'floatingLabelBehavior'"
    date: 2020-01-15
    element:
      uris: [ 'material.dart' ]
      constructor: 'collapsed'
      inClass: 'InputDecoration'
    oneOf:
      - if: "hasFloatingPlaceholder == 'true'"
        changes:
          - kind: 'addParameter'
            index: 14
            name: 'floatingLabelBehavior'
            style: optional_named
            argumentValue:
              expression: '{% FloatingLabelBehavior %}.auto'
              requiredIf: "hasFloatingPlaceholder == 'true'"
              variables:
                FloatingLabelBehavior:
                  kind: 'import'
                  uris: [ 'material.dart' ]
                  name: 'FloatingLabelBehavior'
          - kind: 'removeParameter'
            name: 'hasFloatingPlaceholder'
      - if: "hasFloatingPlaceholder == 'false'"
        changes:
          - kind: 'addParameter'
            index: 14
            name: 'floatingLabelBehavior'
            style: optional_named
            argumentValue:
              expression: '{% FloatingLabelBehavior %}.never'
              requiredIf: "hasFloatingPlaceholder == 'false'"
              variables:
                FloatingLabelBehavior:
                  kind: 'import'
                  uris: [ 'material.dart' ]
                  name: 'FloatingLabelBehavior'
          - kind: 'removeParameter'
            name: 'hasFloatingPlaceholder'
    variables:
      hasFloatingPlaceholder:
        kind: 'fragment'
        value: 'arguments[hasFloatingPlaceholder]'

  # Changes made in https://github.com/flutter/flutter/pull/46115
  - title: "Rename to 'floatingLabelBehavior'"
    date: 2020-01-15
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'InputDecoration'
    oneOf:
      - if: "hasFloatingPlaceholder == 'true'"
        changes:
          - kind: 'addParameter'
            index: 14
            name: 'floatingLabelBehavior'
            style: optional_named
            argumentValue:
              expression: '{% FloatingLabelBehavior %}.auto'
              requiredIf: "hasFloatingPlaceholder == 'true'"
              variables:
                FloatingLabelBehavior:
                  kind: 'import'
                  uris: [ 'material.dart' ]
                  name: 'FloatingLabelBehavior'
          - kind: 'removeParameter'
            name: 'hasFloatingPlaceholder'
      - if: "hasFloatingPlaceholder == 'false'"
        changes:
          - kind: 'addParameter'
            index: 14
            name: 'floatingLabelBehavior'
            style: optional_named
            argumentValue:
              expression: '{% FloatingLabelBehavior %}.never'
              requiredIf: "hasFloatingPlaceholder == 'false'"
              variables:
                FloatingLabelBehavior:
                  kind: 'import'
                  uris: [ 'material.dart' ]
                  name: 'FloatingLabelBehavior'
          - kind: 'removeParameter'
            name: 'hasFloatingPlaceholder'
    variables:
      hasFloatingPlaceholder:
        kind: 'fragment'
        value: 'arguments[hasFloatingPlaceholder]'

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

  # Changes made in https://github.com/flutter/flutter/pull/59127
  - title: "Migrate to 'label'"
    date: 2020-07-09
    element:
      uris: [ 'material.dart', 'widgets.dart', 'cupertino.dart' ]
      constructor: ''
      inClass: 'BottomNavigationBarItem'
    changes:
      - kind: 'renameParameter'
        oldName: 'title'
        newName: 'label'

  # Changes made in https://github.com/flutter/flutter/pull/66043
  - title: "Use withKind"
    date: 2020-09-17
    element:
      uris: [ 'gestures.dart' ]
      constructor: ''
      inClass: 'VelocityTracker'
    oneOf:
      - if: "pointerDeviceKind == ''"
        changes:
          - kind: 'rename'
            newName: 'withKind'
          - kind: 'addParameter'
            index: 0
            name: 'kind'
            style: required_positional
            argumentValue:
              expression: 'PointerDeviceKind.touch'
      - if: "pointerDeviceKind != ''"
        changes:
          - kind: 'rename'
            newName: 'withKind'
    variables:
      pointerDeviceKind:
          kind: 'fragment'
          value: 'arguments[0]'

  # Changes made in https://github.com/flutter/flutter/pull/72043
  - title: "Migrate to 'maxLengthEnforcement'"
    date: 2020-12-13
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'TextFormField'
    oneOf:
      - if: "maxLengthEnforced == 'true'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'maxLengthEnforcement'
            style: optional_named
            argumentValue:
              expression: 'MaxLengthEnforcement.enforce'
              requiredIf: "maxLengthEnforced == 'true'"
          - kind: 'removeParameter'
            name: 'maxLengthEnforced'
      - if: "maxLengthEnforced == 'false'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'maxLengthEnforcement'
            style: optional_named
            argumentValue:
              expression: 'MaxLengthEnforcement.none'
              requiredIf: "maxLengthEnforced == 'false'"
          - kind: 'removeParameter'
            name: 'maxLengthEnforced'
    variables:
      maxLengthEnforced:
        kind: 'fragment'
        value: 'arguments[maxLengthEnforced]'

  # Changes made in https://github.com/flutter/flutter/pull/72043
  - title: "Migrate to 'maxLengthEnforcement'"
    date: 2020-12-13
    element:
      uris: [ 'material.dart' ]
      field: 'maxLengthEnforced'
      inClass: 'TextField'
    changes:
      - kind: 'rename'
        newName: 'maxLengthEnforcement'

  # Changes made in https://github.com/flutter/flutter/pull/72043
  - title: "Migrate to 'maxLengthEnforcement'"
    date: 2020-12-13
    element:
      uris: [ 'material.dart' ]
      constructor: ''
      inClass: 'TextField'
    oneOf:
      - if: "maxLengthEnforced == 'true'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'maxLengthEnforcement'
            style: optional_named
            argumentValue:
              expression: 'MaxLengthEnforcement.enforce'
              requiredIf: "maxLengthEnforced == 'true'"
          - kind: 'removeParameter'
            name: 'maxLengthEnforced'
      - if: "maxLengthEnforced == 'false'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'maxLengthEnforcement'
            style: optional_named
            argumentValue:
              expression: 'MaxLengthEnforcement.none'
              requiredIf: "maxLengthEnforced == 'false'"
          - kind: 'removeParameter'
            name: 'maxLengthEnforced'
    variables:
      maxLengthEnforced:
        kind: 'fragment'
        value: 'arguments[maxLengthEnforced]'

  # Changes made in https://github.com/flutter/flutter/pull/72043
  - title: "Migrate to 'maxLengthEnforcement'"
    date: 2020-12-13
    element:
      uris: [ 'cupertino.dart' ]
      field: 'maxLengthEnforced'
      inClass: 'CupertinoTextField'
    changes:
      - kind: 'rename'
        newName: 'maxLengthEnforcement'

  # Changes made in https://github.com/flutter/flutter/pull/72043
  - title: "Migrate to 'maxLengthEnforcement'"
    date: 2020-12-13
    element:
      uris: [ 'cupertino.dart' ]
      constructor: 'borderless'
      inClass: 'CupertinoTextField'
    oneOf:
      - if: "maxLengthEnforced == 'true'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'maxLengthEnforcement'
            style: optional_named
            argumentValue:
              expression: 'MaxLengthEnforcement.enforce'
              requiredIf: "maxLengthEnforced == 'true'"
          - kind: 'removeParameter'
            name: 'maxLengthEnforced'
      - if: "maxLengthEnforced == 'false'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'maxLengthEnforcement'
            style: optional_named
            argumentValue:
              expression: 'MaxLengthEnforcement.none'
              requiredIf: "maxLengthEnforced == 'false'"
          - kind: 'removeParameter'
            name: 'maxLengthEnforced'
    variables:
      maxLengthEnforced:
        kind: 'fragment'
        value: 'arguments[maxLengthEnforced]'

  # Changes made in https://github.com/flutter/flutter/pull/72043
  - title: "Migrate to 'maxLengthEnforcement'"
    date: 2020-12-13
    element:
      uris: [ 'cupertino.dart' ]
      constructor: ''
      inClass: 'CupertinoTextField'
    oneOf:
      - if: "maxLengthEnforced == 'true'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'maxLengthEnforcement'
            style: optional_named
            argumentValue:
              expression: 'MaxLengthEnforcement.enforce'
              requiredIf: "maxLengthEnforced == 'true'"
          - kind: 'removeParameter'
            name: 'maxLengthEnforced'
      - if: "maxLengthEnforced == 'false'"
        changes:
          - kind: 'addParameter'
            index: 0
            name: 'maxLengthEnforcement'
            style: optional_named
            argumentValue:
              expression: 'MaxLengthEnforcement.none'
              requiredIf: "maxLengthEnforced == 'false'"
          - kind: 'removeParameter'
            name: 'maxLengthEnforced'
    variables:
      maxLengthEnforced:
        kind: 'fragment'
        value: 'arguments[maxLengthEnforced]'

  # 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.