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

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

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

version: 1
transforms:

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