)]}'
{
  "commit": "a5ca6d377b030d2218c0cb819d3a108cfb4c700d",
  "tree": "e1cbfdf2aa362e3882c2f555cc1f9e7695237246",
  "parents": [
    "3f531e5ade17f8fb83cfe08259d6518933de59eb"
  ],
  "author": {
    "name": "Soroush Yousefpour",
    "email": "46920873+gabrimatic@users.noreply.github.com",
    "time": "Thu Aug 27 01:08:48 2026 +0000"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu Aug 27 01:08:48 2026 +0000"
  },
  "message": "Refactor FormField build wrappers (#185795)\n\n## Summary\n\nThis is the refactor-only half of the sliver form field work.\n\n`FormFieldState.build` now delegates its validation semantics wrapper\nand `AutovalidateMode.onUnfocus` focus wrapper through protected\n`wrapWithSemantics` and `wrapWithFocus` methods. The shared validation\nresult and `Focus.includeSemantics` value are kept behind small getters\nso subclasses can customize only the layout-protocol-specific pieces.\n\nThere is no intended behavior change for `FormField` or existing\nsubclasses. The existing render-box semantics and focus behavior remain\nthe same.\n\n## Issue\n\nPreparation for #173912. This PR does not fix the issue by itself; the\nsliver API can follow in a separate PR after this refactor lands.\n\n## Tests\n\n- `flutter analyze --no-pub packages/flutter/lib/src/widgets/form.dart\npackages/flutter/test/widgets/form_test.dart\npackages/flutter/test/widgets/semantics_test.dart\npackages/flutter/test/material/text_form_field_test.dart\npackages/flutter/test/material/text_form_field_restoration_test.dart\npackages/flutter/test/material/dropdown_form_field_test.dart\npackages/flutter/test/material/dropdown_menu_form_field_test.dart\npackages/flutter/test/material/input_date_picker_form_field_test.dart`\n- `flutter test packages/flutter/test/widgets/form_test.dart\npackages/flutter/test/widgets/semantics_test.dart\npackages/flutter/test/material/text_form_field_test.dart\npackages/flutter/test/material/text_form_field_restoration_test.dart\npackages/flutter/test/material/dropdown_form_field_test.dart\npackages/flutter/test/material/dropdown_menu_form_field_test.dart\npackages/flutter/test/material/input_date_picker_form_field_test.dart`\n\n## Pre-launch Checklist\n\n- [x] I read the [Contributor Guide] and followed the process outlined\nthere for submitting PRs.\n- [x] I read the [Tree Hygiene] wiki page, which explains my\nresponsibilities.\n- [x] I read and followed the [Flutter Style Guide].\n- [x] I listed at least one issue that this PR relates to in the\ndescription above.\n- [x] I added or updated tests where needed for the change I am making.\n- [x] All existing and new tests are passing.\n\n[Contributor Guide]:\nhttps://github.com/flutter/flutter/wiki/Tree-hygiene#overview\n[Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene\n[Flutter Style Guide]:\nhttps://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo\n\n---------\n\nCo-authored-by: Victor Sanni \u003cvictorsanniay@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7ec722e4bf380f4a62f02efcd0f4a29bf7b67b5e",
      "old_mode": 33188,
      "old_path": "packages/flutter/lib/src/widgets/form.dart",
      "new_id": "190fa79b526e09636d4b73337195a513fbe7b52a",
      "new_mode": 33188,
      "new_path": "packages/flutter/lib/src/widgets/form.dart"
    },
    {
      "type": "modify",
      "old_id": "257ee111fa5c21f332c8ae814a05bb1e2b05f8c7",
      "old_mode": 33188,
      "old_path": "packages/flutter/test/widgets/form_test.dart",
      "new_id": "fc59d4e261f1fc04f85918177fcf4db835f90124",
      "new_mode": 33188,
      "new_path": "packages/flutter/test/widgets/form_test.dart"
    }
  ]
}
