From 386fbb1e57d4f6578c2fe28b73acf79c469c3e4e Mon Sep 17 00:00:00 2001 From: abdessalem Date: Wed, 5 Aug 2026 20:23:07 +0100 Subject: [PATCH 1/7] describeEnum removal --- .../content/release/breaking-changes/index.md | 2 + .../breaking-changes/remove-describeEnum.md | 61 +++++++++++++++++++ 2 files changed, 63 insertions(+) create mode 100644 sites/docs/src/content/release/breaking-changes/remove-describeEnum.md diff --git a/sites/docs/src/content/release/breaking-changes/index.md b/sites/docs/src/content/release/breaking-changes/index.md index d945d22135..871a302250 100644 --- a/sites/docs/src/content/release/breaking-changes/index.md +++ b/sites/docs/src/content/release/breaking-changes/index.md @@ -39,10 +39,12 @@ They're sorted by release and listed in alphabetical order: * [Added enabled property and made onChanged optional for DropdownButton][] * [OpenGL ES render-to-texture content is stored top-down][] * [Update semantics header and headingLevel behavior on iOS and Android][] +* [Removal of `describeEnum`][] [Added enabled property and made onChanged optional for DropdownButton]: /release/breaking-changes/dropdownbutton-enabled-property [OpenGL ES render-to-texture content is stored top-down]: /release/breaking-changes/opengles-render-to-texture-top-down [Update semantics header and headingLevel behavior on iOS and Android]: /release/breaking-changes/semantics-header-heading-level +[Removal of `describeEnum`]: /release/breaking-changes/remove-describeEnum ### Released in Flutter 3.44 diff --git a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md new file mode 100644 index 0000000000..ac1bf9b289 --- /dev/null +++ b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md @@ -0,0 +1,61 @@ +--- +title: Remove describeEnum +description: >- + The describeEnum method has been removed from the Flutter framework. + since Dart 2.14 Enums has the name getter which does the same thing. +--- + +{% render "docs/breaking-changes.md" %} + +## Summary + +The `describeEnum` has been removed from the framework because it's redundant to the `name` +getter on `Enum` which was introduced in `Dart 2.14`. + +## Context + +Historically, Flutter used used `describeEnum` to get a short description of an enum value, +this became redundant when `name` getter of `Enum` was introduced in `Dart 2.14`, all methods +that uses `describeEnum` in the framework have migrated to using `name` getter. + +## Migration guide + +If your code previously used `describeEnum` method to get the value name of an enum member. +migrate your code to use the `name` getter on the instance itself. + +Code before migration: + +```dart +enum Theme { light, dark } + +final theme = describeEnum(Theme.light) +// theme will contain `light` +``` + +Code after migration: + +```dart +Theme.light.name +// theme will contain `light` +``` + +## Timeline + +Landed in version: TBD
+In stable release: TBD + +## References + +API documentation: + +* [`enums`][] + + +Relevant PRs: + +* [PR 190076][] + +[`enums`]: {{site.dart-site}}/language/enums +[PR 190076]: {{site.repo.flutter}}/pull/190076 + + From dd42a01f0fbfd5d9292ded02b6cee4ed0972169b Mon Sep 17 00:00:00 2001 From: abdessalem Date: Wed, 5 Aug 2026 20:35:02 +0100 Subject: [PATCH 2/7] small typo --- .../src/content/release/breaking-changes/remove-describeEnum.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md index ac1bf9b289..d3ac92573d 100644 --- a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md +++ b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md @@ -9,7 +9,7 @@ description: >- ## Summary -The `describeEnum` has been removed from the framework because it's redundant to the `name` +The `describeEnum` has been removed from the framework because it's redundant with the `name` getter on `Enum` which was introduced in `Dart 2.14`. ## Context From 8c092de247cffe3b3dfe92d11fb059b88e6ff5f7 Mon Sep 17 00:00:00 2001 From: abdessalem Date: Wed, 5 Aug 2026 21:00:13 +0100 Subject: [PATCH 3/7] gemini comments --- .../breaking-changes/remove-describeEnum.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md index d3ac92573d..97bfd04755 100644 --- a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md +++ b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md @@ -1,26 +1,26 @@ --- title: Remove describeEnum description: >- - The describeEnum method has been removed from the Flutter framework. - since Dart 2.14 Enums has the name getter which does the same thing. + The `describeEnum` method has been removed from the Flutter framework. + Since Dart 2.14, enums have a `name` getter that does the same thing. --- {% render "docs/breaking-changes.md" %} ## Summary -The `describeEnum` has been removed from the framework because it's redundant with the `name` +The `describeEnum` method has been removed from the framework because it's redundant with the `name` getter on `Enum` which was introduced in `Dart 2.14`. ## Context -Historically, Flutter used used `describeEnum` to get a short description of an enum value, -this became redundant when `name` getter of `Enum` was introduced in `Dart 2.14`, all methods -that uses `describeEnum` in the framework have migrated to using `name` getter. +Historically, Flutter used `describeEnum` to get a short description of an enum value. +This became redundant when the `name` getter of `Enum` was introduced in `Dart 2.14`. All methods +that use `describeEnum` in the framework have migrated to using the `name` getter. ## Migration guide -If your code previously used `describeEnum` method to get the value name of an enum member. +If your code previously used the `describeEnum` method to get the value name of an enum member, migrate your code to use the `name` getter on the instance itself. Code before migration: @@ -28,14 +28,14 @@ Code before migration: ```dart enum Theme { light, dark } -final theme = describeEnum(Theme.light) +final theme = describeEnum(Theme.light); // theme will contain `light` ``` Code after migration: ```dart -Theme.light.name +Theme.light.name; // theme will contain `light` ``` From 83bd3109aad12328f6a8b7aad557bf74b1fea528 Mon Sep 17 00:00:00 2001 From: Mohellebi Abdessalem <116356835+AbdeMohlbi@users.noreply.github.com> Date: Sat, 8 Aug 2026 08:00:18 +0100 Subject: [PATCH 4/7] Apply suggestion from @Piinks Co-authored-by: Kate Lovett --- .../src/content/release/breaking-changes/remove-describeEnum.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md index 97bfd04755..48bae8e875 100644 --- a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md +++ b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md @@ -14,7 +14,7 @@ getter on `Enum` which was introduced in `Dart 2.14`. ## Context -Historically, Flutter used `describeEnum` to get a short description of an enum value. +Historically, Flutter used `describeEnum` to return a `String` description of an enum value. This became redundant when the `name` getter of `Enum` was introduced in `Dart 2.14`. All methods that use `describeEnum` in the framework have migrated to using the `name` getter. From d1ed827d2f9572215cc628fcc26dc65fa869200f Mon Sep 17 00:00:00 2001 From: Mohellebi Abdessalem <116356835+AbdeMohlbi@users.noreply.github.com> Date: Sat, 8 Aug 2026 08:00:26 +0100 Subject: [PATCH 5/7] Apply suggestion from @Piinks Co-authored-by: Kate Lovett --- .../content/release/breaking-changes/remove-describeEnum.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md index 48bae8e875..762ae5b6ca 100644 --- a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md +++ b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md @@ -15,8 +15,7 @@ getter on `Enum` which was introduced in `Dart 2.14`. ## Context Historically, Flutter used `describeEnum` to return a `String` description of an enum value. -This became redundant when the `name` getter of `Enum` was introduced in `Dart 2.14`. All methods -that use `describeEnum` in the framework have migrated to using the `name` getter. +This became redundant when the `name` getter of `Enum` was introduced in `Dart 2.14`. ## Migration guide From e62476898c6104e5cd1a6a70a95c453450ba7c9d Mon Sep 17 00:00:00 2001 From: abdessalem Date: Sat, 8 Aug 2026 08:12:03 +0100 Subject: [PATCH 6/7] piinks has a point --- .../src/content/release/breaking-changes/remove-describeEnum.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md index 762ae5b6ca..523d405884 100644 --- a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md +++ b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md @@ -52,9 +52,11 @@ API documentation: Relevant PRs: +* [PR 94496][] * [PR 190076][] [`enums`]: {{site.dart-site}}/language/enums +[PR 94496]: {{site.repo.flutter}}/pull/94496 [PR 190076]: {{site.repo.flutter}}/pull/190076 From 9e84c5b94879d31efbd55c5c2089f10f2de471ab Mon Sep 17 00:00:00 2001 From: abdessalem Date: Sat, 8 Aug 2026 08:21:06 +0100 Subject: [PATCH 7/7] that's even better --- .../breaking-changes/remove-describeEnum.md | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md index 523d405884..df9ba4210d 100644 --- a/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md +++ b/sites/docs/src/content/release/breaking-changes/remove-describeEnum.md @@ -22,21 +22,17 @@ This became redundant when the `name` getter of `Enum` was introduced in `Dart 2 If your code previously used the `describeEnum` method to get the value name of an enum member, migrate your code to use the `name` getter on the instance itself. -Code before migration: +```dart diff + enum Theme { light, dark } -```dart -enum Theme { light, dark } +- final theme = describeEnum(Theme.light); -final theme = describeEnum(Theme.light); -// theme will contain `light` ++ Theme.light.name; ``` -Code after migration: - -```dart -Theme.light.name; -// theme will contain `light` -``` +:::important +This migration isn't supported by `dart fix`. +::: ## Timeline