Add assert for mutually exclusive errorBuilder and errorText#183901
Conversation
There was a problem hiding this comment.
Code Review
The pull request effectively addresses a potential framework crash by enforcing mutual exclusivity between errorBuilder and decoration.errorText in TextFormField and DropdownButtonFormField. The introduction of assertions at the constructor level ensures that developers are alerted to this conflict early, promoting fail-fast behavior. Comprehensive test cases have been added to validate the new assertions, confirming their intended functionality.
Renzo-Olivares
left a comment
There was a problem hiding this comment.
LGTM w/ small nits.
|
Hi @muradhossin, thank you for the contribution! Mostly looks good to me with a small suggestion. |
|
Hi @Hari-07 it looks like the merge queue timed out a couple of days ago and dropped the autosubmit label. All checks are currently green and passing. Could you please re-add the autosubmit label so this can be merged? Thank you! |
…11345) Manual roll Flutter from dd64978dfae1 to 82d96ef98a33 (89 revisions) Manual roll requested by [email protected] flutter/flutter@dd64978...82d96ef 2026-03-24 [email protected] Fix RenderStack's documentation (flutter/flutter#183822) 2026-03-24 [email protected] Roll Skia from a465876e3156 to f4e59f82dc69 (4 revisions) (flutter/flutter#184082) 2026-03-24 [email protected] Refactor: Removes Geometry field from ColorSourceContents (flutter/flutter#183952) 2026-03-24 [email protected] Refactor layout dimensions (flutter/flutter#184066) 2026-03-24 [email protected] feat: Add --base-href support to flutter run for web (flutter/flutter#182709) 2026-03-24 [email protected] Add LeanCode and contributors to AUTHORS (flutter/flutter#182997) 2026-03-24 [email protected] [tools] Make sure `assemble` has a pubspec as cwd (flutter/flutter#184067) 2026-03-24 [email protected] Roll Skia from bf4f2763b6e6 to a465876e3156 (5 revisions) (flutter/flutter#184068) 2026-03-24 [email protected] fix gaussian blur getting clipped with negative scale (flutter/flutter#184037) 2026-03-24 [email protected] Keep glyphs for variable fonts (flutter/flutter#183857) 2026-03-24 [email protected] Mark `IconData` `final` and `@mustBeConst` (flutter/flutter#181345) 2026-03-24 [email protected] Roll Skia from 62841a512deb to bf4f2763b6e6 (1 revision) (flutter/flutter#184062) 2026-03-24 [email protected] Use Color.a instead of Color.alpha to assert the opacity of the color… (flutter/flutter#184003) 2026-03-24 [email protected] Roll Dart SDK from f504293598f2 to b08bd0a3ee39 (1 revision) (flutter/flutter#184054) 2026-03-24 [email protected] Roll Fuchsia Linux SDK from x9x76ERXhrt0Q3zKf... to M3sjWggTQmP2AD4bS... (flutter/flutter#184053) 2026-03-24 [email protected] Roll Dart SDK from 788e347194a6 to f504293598f2 (1 revision) (flutter/flutter#184048) 2026-03-24 [email protected] Roll Skia from fb6acef456ea to 62841a512deb (2 revisions) (flutter/flutter#184046) 2026-03-24 [email protected] [Slider] Remove value indicator painter when animation is dismissed (flutter/flutter#182991) 2026-03-24 [email protected] Manual roll ICU from 7971660ba630 to ee5f27adc28b (1 revision) (flutter/flutter#184041) 2026-03-23 [email protected] Add scrollPadding property to DropdownMenu (flutter/flutter#183109) 2026-03-23 [email protected] Roll pub packages (flutter/flutter#183895) 2026-03-23 [email protected] Roll Skia from c2b58922e37d to fb6acef456ea (1 revision) (flutter/flutter#184033) 2026-03-23 [email protected] Roll Dart SDK from b172bea4f008 to 788e347194a6 (2 revisions) (flutter/flutter#184035) 2026-03-23 [email protected] chore: deflake Linux_android_emu android_display_cutout (flutter/flutter#183522) 2026-03-23 [email protected] Add note about gclient sync network failures and workaround (flutter/flutter#183794) 2026-03-23 [email protected] Roll Skia from a81bf411a5cb to c2b58922e37d (3 revisions) (flutter/flutter#184016) 2026-03-23 [email protected] refactor(web): use positive logic and platform defaults for accessibility features (flutter/flutter#183907) 2026-03-23 [email protected] [android][a11y] set "android.widget.ProgressBar" according to semantics role (flutter/flutter#183897) 2026-03-23 [email protected] Add progress bar to artifact downloads (flutter/flutter#182836) 2026-03-23 [email protected] Add windows instruction to `Forcing Flutter Tools Snapshot Regeneration` (flutter/flutter#183977) 2026-03-23 [email protected] Roll Skia from 42a6eb1dc5c9 to a81bf411a5cb (3 revisions) (flutter/flutter#184007) 2026-03-23 [email protected] Roll Fuchsia Linux SDK from q1xqlQPxq8a3JTA4P... to x9x76ERXhrt0Q3zKf... (flutter/flutter#184006) 2026-03-23 [email protected] Roll Dart SDK from ef45f179526f to b172bea4f008 (1 revision) (flutter/flutter#184004) 2026-03-23 [email protected] Roll Skia from 964c3b33fd73 to 42a6eb1dc5c9 (1 revision) (flutter/flutter#184001) 2026-03-23 [email protected] Update the windowing docs per the latest wording found while doing Satellites (flutter/flutter#183748) 2026-03-22 [email protected] Add assert for mutually exclusive errorBuilder and errorText (flutter/flutter#183901) 2026-03-22 [email protected] Roll Fuchsia Linux SDK from Yc7Ijp2ySjG841xha... to q1xqlQPxq8a3JTA4P... (flutter/flutter#183991) 2026-03-21 [email protected] Roll Skia from 812822ad5caa to 964c3b33fd73 (1 revision) (flutter/flutter#183982) 2026-03-21 [email protected] Roll Dart SDK from c831a55e2fcc to ef45f179526f (1 revision) (flutter/flutter#183973) 2026-03-21 [email protected] Roll Skia from 569cc0475162 to 812822ad5caa (2 revisions) (flutter/flutter#183970) 2026-03-20 [email protected] Roll Fuchsia Linux SDK from ilAIAVzu4xmeb078x... to Yc7Ijp2ySjG841xha... (flutter/flutter#183956) 2026-03-20 [email protected] Roll Skia from 79a14289c60d to 569cc0475162 (3 revisions) (flutter/flutter#183954) 2026-03-20 [email protected] Roll Dart SDK from c88a8008e93b to c831a55e2fcc (3 revisions) (flutter/flutter#183953) 2026-03-20 [email protected] Roll Skia from 8d4c76b92050 to 79a14289c60d (4 revisions) (flutter/flutter#183949) ...
…lutter#11345) Manual roll Flutter from dd64978dfae1 to 82d96ef98a33 (89 revisions) Manual roll requested by [email protected] flutter/flutter@dd64978...82d96ef 2026-03-24 [email protected] Fix RenderStack's documentation (flutter/flutter#183822) 2026-03-24 [email protected] Roll Skia from a465876e3156 to f4e59f82dc69 (4 revisions) (flutter/flutter#184082) 2026-03-24 [email protected] Refactor: Removes Geometry field from ColorSourceContents (flutter/flutter#183952) 2026-03-24 [email protected] Refactor layout dimensions (flutter/flutter#184066) 2026-03-24 [email protected] feat: Add --base-href support to flutter run for web (flutter/flutter#182709) 2026-03-24 [email protected] Add LeanCode and contributors to AUTHORS (flutter/flutter#182997) 2026-03-24 [email protected] [tools] Make sure `assemble` has a pubspec as cwd (flutter/flutter#184067) 2026-03-24 [email protected] Roll Skia from bf4f2763b6e6 to a465876e3156 (5 revisions) (flutter/flutter#184068) 2026-03-24 [email protected] fix gaussian blur getting clipped with negative scale (flutter/flutter#184037) 2026-03-24 [email protected] Keep glyphs for variable fonts (flutter/flutter#183857) 2026-03-24 [email protected] Mark `IconData` `final` and `@mustBeConst` (flutter/flutter#181345) 2026-03-24 [email protected] Roll Skia from 62841a512deb to bf4f2763b6e6 (1 revision) (flutter/flutter#184062) 2026-03-24 [email protected] Use Color.a instead of Color.alpha to assert the opacity of the color… (flutter/flutter#184003) 2026-03-24 [email protected] Roll Dart SDK from f504293598f2 to b08bd0a3ee39 (1 revision) (flutter/flutter#184054) 2026-03-24 [email protected] Roll Fuchsia Linux SDK from x9x76ERXhrt0Q3zKf... to M3sjWggTQmP2AD4bS... (flutter/flutter#184053) 2026-03-24 [email protected] Roll Dart SDK from 788e347194a6 to f504293598f2 (1 revision) (flutter/flutter#184048) 2026-03-24 [email protected] Roll Skia from fb6acef456ea to 62841a512deb (2 revisions) (flutter/flutter#184046) 2026-03-24 [email protected] [Slider] Remove value indicator painter when animation is dismissed (flutter/flutter#182991) 2026-03-24 [email protected] Manual roll ICU from 7971660ba630 to ee5f27adc28b (1 revision) (flutter/flutter#184041) 2026-03-23 [email protected] Add scrollPadding property to DropdownMenu (flutter/flutter#183109) 2026-03-23 [email protected] Roll pub packages (flutter/flutter#183895) 2026-03-23 [email protected] Roll Skia from c2b58922e37d to fb6acef456ea (1 revision) (flutter/flutter#184033) 2026-03-23 [email protected] Roll Dart SDK from b172bea4f008 to 788e347194a6 (2 revisions) (flutter/flutter#184035) 2026-03-23 [email protected] chore: deflake Linux_android_emu android_display_cutout (flutter/flutter#183522) 2026-03-23 [email protected] Add note about gclient sync network failures and workaround (flutter/flutter#183794) 2026-03-23 [email protected] Roll Skia from a81bf411a5cb to c2b58922e37d (3 revisions) (flutter/flutter#184016) 2026-03-23 [email protected] refactor(web): use positive logic and platform defaults for accessibility features (flutter/flutter#183907) 2026-03-23 [email protected] [android][a11y] set "android.widget.ProgressBar" according to semantics role (flutter/flutter#183897) 2026-03-23 [email protected] Add progress bar to artifact downloads (flutter/flutter#182836) 2026-03-23 [email protected] Add windows instruction to `Forcing Flutter Tools Snapshot Regeneration` (flutter/flutter#183977) 2026-03-23 [email protected] Roll Skia from 42a6eb1dc5c9 to a81bf411a5cb (3 revisions) (flutter/flutter#184007) 2026-03-23 [email protected] Roll Fuchsia Linux SDK from q1xqlQPxq8a3JTA4P... to x9x76ERXhrt0Q3zKf... (flutter/flutter#184006) 2026-03-23 [email protected] Roll Dart SDK from ef45f179526f to b172bea4f008 (1 revision) (flutter/flutter#184004) 2026-03-23 [email protected] Roll Skia from 964c3b33fd73 to 42a6eb1dc5c9 (1 revision) (flutter/flutter#184001) 2026-03-23 [email protected] Update the windowing docs per the latest wording found while doing Satellites (flutter/flutter#183748) 2026-03-22 [email protected] Add assert for mutually exclusive errorBuilder and errorText (flutter/flutter#183901) 2026-03-22 [email protected] Roll Fuchsia Linux SDK from Yc7Ijp2ySjG841xha... to q1xqlQPxq8a3JTA4P... (flutter/flutter#183991) 2026-03-21 [email protected] Roll Skia from 812822ad5caa to 964c3b33fd73 (1 revision) (flutter/flutter#183982) 2026-03-21 [email protected] Roll Dart SDK from c831a55e2fcc to ef45f179526f (1 revision) (flutter/flutter#183973) 2026-03-21 [email protected] Roll Skia from 569cc0475162 to 812822ad5caa (2 revisions) (flutter/flutter#183970) 2026-03-20 [email protected] Roll Fuchsia Linux SDK from ilAIAVzu4xmeb078x... to Yc7Ijp2ySjG841xha... (flutter/flutter#183956) 2026-03-20 [email protected] Roll Skia from 79a14289c60d to 569cc0475162 (3 revisions) (flutter/flutter#183954) 2026-03-20 [email protected] Roll Dart SDK from c88a8008e93b to c831a55e2fcc (3 revisions) (flutter/flutter#183953) 2026-03-20 [email protected] Roll Skia from 8d4c76b92050 to 79a14289c60d (4 revisions) (flutter/flutter#183949) ...
…#183901) This PR fixes a framework crash that occurs when `errorBuilder` is used alongside an `InputDecoration` that contains an `errorText`. Because `InputDecoration.copyWith` ignores `null` values, attempting to clear the `errorText` dynamically during the build phase leaves the decoration with both properties defined, triggering a late assertion in `InputDecorator`. Following the architectural guidance provided by @Hari-07 in PR flutter#183384, this fix enforces mutual exclusivity at the constructor level. It adds an `assert` to both `TextFormField` and `DropdownButtonFormField` to ensure developers fail fast if both properties are provided. Fixes flutter#183378 I added the following tests to verify the assertions: - `TextFormField` asserts when both `errorBuilder` and `decoration.errorText` are provided. - `DropdownButtonFormField` asserts when both `errorBuilder` and `decoration.errorText` are provided. --------- Co-authored-by: Hari07 <[email protected]>
…#183901) This PR fixes a framework crash that occurs when `errorBuilder` is used alongside an `InputDecoration` that contains an `errorText`. Because `InputDecoration.copyWith` ignores `null` values, attempting to clear the `errorText` dynamically during the build phase leaves the decoration with both properties defined, triggering a late assertion in `InputDecorator`. Following the architectural guidance provided by @Hari-07 in PR flutter#183384, this fix enforces mutual exclusivity at the constructor level. It adds an `assert` to both `TextFormField` and `DropdownButtonFormField` to ensure developers fail fast if both properties are provided. Fixes flutter#183378 I added the following tests to verify the assertions: - `TextFormField` asserts when both `errorBuilder` and `decoration.errorText` are provided. - `DropdownButtonFormField` asserts when both `errorBuilder` and `decoration.errorText` are provided. --------- Co-authored-by: Hari07 <[email protected]>
…(#11345) Manual roll Flutter from dd64978dfae1 to 82d96ef98a33 (89 revisions) Manual roll requested by [email protected] flutter/flutter@dd64978...82d96ef 2026-03-24 [email protected] Fix RenderStack's documentation (flutter/flutter#183822) 2026-03-24 [email protected] Roll Skia from a465876e3156 to f4e59f82dc69 (4 revisions) (flutter/flutter#184082) 2026-03-24 [email protected] Refactor: Removes Geometry field from ColorSourceContents (flutter/flutter#183952) 2026-03-24 [email protected] Refactor layout dimensions (flutter/flutter#184066) 2026-03-24 [email protected] feat: Add --base-href support to flutter run for web (flutter/flutter#182709) 2026-03-24 [email protected] Add LeanCode and contributors to AUTHORS (flutter/flutter#182997) 2026-03-24 [email protected] [tools] Make sure `assemble` has a pubspec as cwd (flutter/flutter#184067) 2026-03-24 [email protected] Roll Skia from bf4f2763b6e6 to a465876e3156 (5 revisions) (flutter/flutter#184068) 2026-03-24 [email protected] fix gaussian blur getting clipped with negative scale (flutter/flutter#184037) 2026-03-24 [email protected] Keep glyphs for variable fonts (flutter/flutter#183857) 2026-03-24 [email protected] Mark `IconData` `final` and `@mustBeConst` (flutter/flutter#181345) 2026-03-24 [email protected] Roll Skia from 62841a512deb to bf4f2763b6e6 (1 revision) (flutter/flutter#184062) 2026-03-24 [email protected] Use Color.a instead of Color.alpha to assert the opacity of the color… (flutter/flutter#184003) 2026-03-24 [email protected] Roll Dart SDK from f504293598f2 to b08bd0a3ee39 (1 revision) (flutter/flutter#184054) 2026-03-24 [email protected] Roll Fuchsia Linux SDK from x9x76ERXhrt0Q3zKf... to M3sjWggTQmP2AD4bS... (flutter/flutter#184053) 2026-03-24 [email protected] Roll Dart SDK from 788e347194a6 to f504293598f2 (1 revision) (flutter/flutter#184048) 2026-03-24 [email protected] Roll Skia from fb6acef456ea to 62841a512deb (2 revisions) (flutter/flutter#184046) 2026-03-24 [email protected] [Slider] Remove value indicator painter when animation is dismissed (flutter/flutter#182991) 2026-03-24 [email protected] Manual roll ICU from 7971660ba630 to ee5f27adc28b (1 revision) (flutter/flutter#184041) 2026-03-23 [email protected] Add scrollPadding property to DropdownMenu (flutter/flutter#183109) 2026-03-23 [email protected] Roll pub packages (flutter/flutter#183895) 2026-03-23 [email protected] Roll Skia from c2b58922e37d to fb6acef456ea (1 revision) (flutter/flutter#184033) 2026-03-23 [email protected] Roll Dart SDK from b172bea4f008 to 788e347194a6 (2 revisions) (flutter/flutter#184035) 2026-03-23 [email protected] chore: deflake Linux_android_emu android_display_cutout (flutter/flutter#183522) 2026-03-23 [email protected] Add note about gclient sync network failures and workaround (flutter/flutter#183794) 2026-03-23 [email protected] Roll Skia from a81bf411a5cb to c2b58922e37d (3 revisions) (flutter/flutter#184016) 2026-03-23 [email protected] refactor(web): use positive logic and platform defaults for accessibility features (flutter/flutter#183907) 2026-03-23 [email protected] [android][a11y] set "android.widget.ProgressBar" according to semantics role (flutter/flutter#183897) 2026-03-23 [email protected] Add progress bar to artifact downloads (flutter/flutter#182836) 2026-03-23 [email protected] Add windows instruction to `Forcing Flutter Tools Snapshot Regeneration` (flutter/flutter#183977) 2026-03-23 [email protected] Roll Skia from 42a6eb1dc5c9 to a81bf411a5cb (3 revisions) (flutter/flutter#184007) 2026-03-23 [email protected] Roll Fuchsia Linux SDK from q1xqlQPxq8a3JTA4P... to x9x76ERXhrt0Q3zKf... (flutter/flutter#184006) 2026-03-23 [email protected] Roll Dart SDK from ef45f179526f to b172bea4f008 (1 revision) (flutter/flutter#184004) 2026-03-23 [email protected] Roll Skia from 964c3b33fd73 to 42a6eb1dc5c9 (1 revision) (flutter/flutter#184001) 2026-03-23 [email protected] Update the windowing docs per the latest wording found while doing Satellites (flutter/flutter#183748) 2026-03-22 [email protected] Add assert for mutually exclusive errorBuilder and errorText (flutter/flutter#183901) 2026-03-22 [email protected] Roll Fuchsia Linux SDK from Yc7Ijp2ySjG841xha... to q1xqlQPxq8a3JTA4P... (flutter/flutter#183991) 2026-03-21 [email protected] Roll Skia from 812822ad5caa to 964c3b33fd73 (1 revision) (flutter/flutter#183982) 2026-03-21 [email protected] Roll Dart SDK from c831a55e2fcc to ef45f179526f (1 revision) (flutter/flutter#183973) 2026-03-21 [email protected] Roll Skia from 569cc0475162 to 812822ad5caa (2 revisions) (flutter/flutter#183970) 2026-03-20 [email protected] Roll Fuchsia Linux SDK from ilAIAVzu4xmeb078x... to Yc7Ijp2ySjG841xha... (flutter/flutter#183956) 2026-03-20 [email protected] Roll Skia from 79a14289c60d to 569cc0475162 (3 revisions) (flutter/flutter#183954) 2026-03-20 [email protected] Roll Dart SDK from c88a8008e93b to c831a55e2fcc (3 revisions) (flutter/flutter#183953) 2026-03-20 [email protected] Roll Skia from 8d4c76b92050 to 79a14289c60d (4 revisions) (flutter/flutter#183949) ...
…lutter#11345) Manual roll Flutter from dd64978dfae1 to 82d96ef98a33 (89 revisions) Manual roll requested by [email protected] flutter/flutter@dd64978...82d96ef 2026-03-24 [email protected] Fix RenderStack's documentation (flutter/flutter#183822) 2026-03-24 [email protected] Roll Skia from a465876e3156 to f4e59f82dc69 (4 revisions) (flutter/flutter#184082) 2026-03-24 [email protected] Refactor: Removes Geometry field from ColorSourceContents (flutter/flutter#183952) 2026-03-24 [email protected] Refactor layout dimensions (flutter/flutter#184066) 2026-03-24 [email protected] feat: Add --base-href support to flutter run for web (flutter/flutter#182709) 2026-03-24 [email protected] Add LeanCode and contributors to AUTHORS (flutter/flutter#182997) 2026-03-24 [email protected] [tools] Make sure `assemble` has a pubspec as cwd (flutter/flutter#184067) 2026-03-24 [email protected] Roll Skia from bf4f2763b6e6 to a465876e3156 (5 revisions) (flutter/flutter#184068) 2026-03-24 [email protected] fix gaussian blur getting clipped with negative scale (flutter/flutter#184037) 2026-03-24 [email protected] Keep glyphs for variable fonts (flutter/flutter#183857) 2026-03-24 [email protected] Mark `IconData` `final` and `@mustBeConst` (flutter/flutter#181345) 2026-03-24 [email protected] Roll Skia from 62841a512deb to bf4f2763b6e6 (1 revision) (flutter/flutter#184062) 2026-03-24 [email protected] Use Color.a instead of Color.alpha to assert the opacity of the color… (flutter/flutter#184003) 2026-03-24 [email protected] Roll Dart SDK from f504293598f2 to b08bd0a3ee39 (1 revision) (flutter/flutter#184054) 2026-03-24 [email protected] Roll Fuchsia Linux SDK from x9x76ERXhrt0Q3zKf... to M3sjWggTQmP2AD4bS... (flutter/flutter#184053) 2026-03-24 [email protected] Roll Dart SDK from 788e347194a6 to f504293598f2 (1 revision) (flutter/flutter#184048) 2026-03-24 [email protected] Roll Skia from fb6acef456ea to 62841a512deb (2 revisions) (flutter/flutter#184046) 2026-03-24 [email protected] [Slider] Remove value indicator painter when animation is dismissed (flutter/flutter#182991) 2026-03-24 [email protected] Manual roll ICU from 7971660ba630 to ee5f27adc28b (1 revision) (flutter/flutter#184041) 2026-03-23 [email protected] Add scrollPadding property to DropdownMenu (flutter/flutter#183109) 2026-03-23 [email protected] Roll pub packages (flutter/flutter#183895) 2026-03-23 [email protected] Roll Skia from c2b58922e37d to fb6acef456ea (1 revision) (flutter/flutter#184033) 2026-03-23 [email protected] Roll Dart SDK from b172bea4f008 to 788e347194a6 (2 revisions) (flutter/flutter#184035) 2026-03-23 [email protected] chore: deflake Linux_android_emu android_display_cutout (flutter/flutter#183522) 2026-03-23 [email protected] Add note about gclient sync network failures and workaround (flutter/flutter#183794) 2026-03-23 [email protected] Roll Skia from a81bf411a5cb to c2b58922e37d (3 revisions) (flutter/flutter#184016) 2026-03-23 [email protected] refactor(web): use positive logic and platform defaults for accessibility features (flutter/flutter#183907) 2026-03-23 [email protected] [android][a11y] set "android.widget.ProgressBar" according to semantics role (flutter/flutter#183897) 2026-03-23 [email protected] Add progress bar to artifact downloads (flutter/flutter#182836) 2026-03-23 [email protected] Add windows instruction to `Forcing Flutter Tools Snapshot Regeneration` (flutter/flutter#183977) 2026-03-23 [email protected] Roll Skia from 42a6eb1dc5c9 to a81bf411a5cb (3 revisions) (flutter/flutter#184007) 2026-03-23 [email protected] Roll Fuchsia Linux SDK from q1xqlQPxq8a3JTA4P... to x9x76ERXhrt0Q3zKf... (flutter/flutter#184006) 2026-03-23 [email protected] Roll Dart SDK from ef45f179526f to b172bea4f008 (1 revision) (flutter/flutter#184004) 2026-03-23 [email protected] Roll Skia from 964c3b33fd73 to 42a6eb1dc5c9 (1 revision) (flutter/flutter#184001) 2026-03-23 [email protected] Update the windowing docs per the latest wording found while doing Satellites (flutter/flutter#183748) 2026-03-22 [email protected] Add assert for mutually exclusive errorBuilder and errorText (flutter/flutter#183901) 2026-03-22 [email protected] Roll Fuchsia Linux SDK from Yc7Ijp2ySjG841xha... to q1xqlQPxq8a3JTA4P... (flutter/flutter#183991) 2026-03-21 [email protected] Roll Skia from 812822ad5caa to 964c3b33fd73 (1 revision) (flutter/flutter#183982) 2026-03-21 [email protected] Roll Dart SDK from c831a55e2fcc to ef45f179526f (1 revision) (flutter/flutter#183973) 2026-03-21 [email protected] Roll Skia from 569cc0475162 to 812822ad5caa (2 revisions) (flutter/flutter#183970) 2026-03-20 [email protected] Roll Fuchsia Linux SDK from ilAIAVzu4xmeb078x... to Yc7Ijp2ySjG841xha... (flutter/flutter#183956) 2026-03-20 [email protected] Roll Skia from 79a14289c60d to 569cc0475162 (3 revisions) (flutter/flutter#183954) 2026-03-20 [email protected] Roll Dart SDK from c88a8008e93b to c831a55e2fcc (3 revisions) (flutter/flutter#183953) 2026-03-20 [email protected] Roll Skia from 8d4c76b92050 to 79a14289c60d (4 revisions) (flutter/flutter#183949) ...
This PR fixes a framework crash that occurs when
errorBuilderis used alongside anInputDecorationthat contains anerrorText.Because
InputDecoration.copyWithignoresnullvalues, attempting to clear theerrorTextdynamically during the build phase leaves the decoration with both properties defined, triggering a late assertion inInputDecorator.Following the architectural guidance provided by @Hari-07 in PR #183384, this fix enforces mutual exclusivity at the constructor level. It adds an
assertto bothTextFormFieldandDropdownButtonFormFieldto ensure developers fail fast if both properties are provided.Fixes #183378
I added the following tests to verify the assertions:
TextFormFieldasserts when botherrorBuilderanddecoration.errorTextare provided.DropdownButtonFormFieldasserts when botherrorBuilderanddecoration.errorTextare provided.