Skip to content

Conversation

@SalehTZ
Copy link
Contributor

@SalehTZ SalehTZ commented Jul 14, 2025

Replaces the generic assertion in AlignmentDirectional.resolve and _MixedAlignment.resolve with
debugCheckCanResolveTextDirection.

This change provides a more helpful and descriptive error message when the TextDirection is null, improving the developer experience by clearly stating why the resolution failed and how to fix it.

Fixes: #171813, Fixes: #171814, also fixes: #171812

Pre-launch Checklist

SalehTZ added 2 commits July 14, 2025 12:26
Replaces the generic assertion in `AlignmentDirectional.resolve` and `_MixedAlignment.resolve` with
`debugCheckCanResolveTextDirection`.

This change provides a more helpful and descriptive error message when the `TextDirection` is null, improving the developer
experience by clearly stating why the resolution failed and how to fix it.

Fixes: flutter#171813
Adds a test case to ensure that calling `AlignmentDirectional.resolve` with a null `TextDirection` throws a `FlutterError`
with the expected improved message.
@github-actions github-actions bot added the framework flutter/packages/flutter repository. See also f: labels. label Jul 14, 2025
SalehTZ added 2 commits July 14, 2025 15:26
…olve`

Adds a test case that uses `add()` method to ensure that calling `_MixedAlignment.resolve` with a null `TextDirection` throws a `FlutterError`
with the expected improved message.
@nt4f04uNd nt4f04uNd self-requested a review July 20, 2025 10:52
SalehTZ added a commit to SalehTZ/flutter that referenced this pull request Jul 21, 2025
SalehTZ added a commit to SalehTZ/flutter that referenced this pull request Jul 21, 2025
Copy link
Contributor

@victorsanni victorsanni left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks for the PR.

Copy link
Contributor

@MitchellGoodwin MitchellGoodwin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM as well!

@justinmc justinmc added the autosubmit Merge PR when tree becomes green via auto submit App label Jul 22, 2025
@auto-submit auto-submit bot added this pull request to the merge queue Jul 22, 2025
Merged via the queue into flutter:master with commit c45a67e Jul 22, 2025
72 checks passed
@flutter-dashboard flutter-dashboard bot removed the autosubmit Merge PR when tree becomes green via auto submit App label Jul 22, 2025
@SalehTZ SalehTZ deleted the add-detailed-error-message-for-AlignmentDirectional.resolve branch July 23, 2025 04:25
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Jul 23, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request Jul 23, 2025
flutter/flutter@ee0cc66...afba7d7

2025-07-23 [email protected] Remove GtkGLArea and render directly into GtkDrawingArea (flutter/flutter#172343)
2025-07-23 [email protected] Prefix generated Dart plugin imports for `registerWith` (flutter/flutter#172511)
2025-07-23 [email protected] Remove stale references to `.packages` in tool tests (flutter/flutter#172582)
2025-07-23 [email protected] Wraps all `git` executions in a `Git(...).*`, use `*=noglob` on Windows (flutter/flutter#172495)
2025-07-22 [email protected] Omit instruction to `cd .` after `flutter create` (flutter/flutter#172513)
2025-07-22 [email protected] Improve assertion message in `AlignmentDirectional.resolve` (flutter/flutter#172096)
2025-07-22 [email protected] Update warnGradleVersion to `8.7.0` (flutter/flutter#172576)
2025-07-22 [email protected] Use a fake representation of `cache/artifacts/gradle_wrapper` (flutter/flutter#172503)
2025-07-22 [email protected] Revert #160653 Fix view removal process for AutofillContextAction.cancel (flutter/flutter#172490)
2025-07-22 [email protected] Bump meta to 0.17.0 (flutter/flutter#172541)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
azatech pushed a commit to azatech/flutter that referenced this pull request Jul 28, 2025
…172096)

Replaces the generic assertion in `AlignmentDirectional.resolve` and
`_MixedAlignment.resolve` with
`debugCheckCanResolveTextDirection`.

This change provides a more helpful and descriptive error message when
the `TextDirection` is null, improving the developer experience by
clearly stating why the resolution failed and how to fix it.

Fixes: flutter#171813, Fixes: flutter#171814, also fixes: flutter#171812

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
vashworth pushed a commit to vashworth/packages that referenced this pull request Jul 30, 2025
…r#9665)

flutter/flutter@ee0cc66...afba7d7

2025-07-23 [email protected] Remove GtkGLArea and render directly into GtkDrawingArea (flutter/flutter#172343)
2025-07-23 [email protected] Prefix generated Dart plugin imports for `registerWith` (flutter/flutter#172511)
2025-07-23 [email protected] Remove stale references to `.packages` in tool tests (flutter/flutter#172582)
2025-07-23 [email protected] Wraps all `git` executions in a `Git(...).*`, use `*=noglob` on Windows (flutter/flutter#172495)
2025-07-22 [email protected] Omit instruction to `cd .` after `flutter create` (flutter/flutter#172513)
2025-07-22 [email protected] Improve assertion message in `AlignmentDirectional.resolve` (flutter/flutter#172096)
2025-07-22 [email protected] Update warnGradleVersion to `8.7.0` (flutter/flutter#172576)
2025-07-22 [email protected] Use a fake representation of `cache/artifacts/gradle_wrapper` (flutter/flutter#172503)
2025-07-22 [email protected] Revert #160653 Fix view removal process for AutofillContextAction.cancel (flutter/flutter#172490)
2025-07-22 [email protected] Bump meta to 0.17.0 (flutter/flutter#172541)

If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-packages
Please CC [email protected] on the revert to ensure that a human
is aware of the problem.

To file a bug in Packages: https://github.com/flutter/flutter/issues/new/choose

To report a problem with the AutoRoller itself, please file a bug:
https://issues.skia.org/issues/new?component=1389291&template=1850622

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
ksokolovskyi pushed a commit to ksokolovskyi/flutter that referenced this pull request Aug 19, 2025
…172096)

Replaces the generic assertion in `AlignmentDirectional.resolve` and
`_MixedAlignment.resolve` with
`debugCheckCanResolveTextDirection`.

This change provides a more helpful and descriptive error message when
the `TextDirection` is null, improving the developer experience by
clearly stating why the resolution failed and how to fix it.

Fixes: flutter#171813, Fixes: flutter#171814, also fixes: flutter#171812

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
mboetger pushed a commit to mboetger/flutter that referenced this pull request Sep 18, 2025
…172096)

Replaces the generic assertion in `AlignmentDirectional.resolve` and
`_MixedAlignment.resolve` with
`debugCheckCanResolveTextDirection`.

This change provides a more helpful and descriptive error message when
the `TextDirection` is null, improving the developer experience by
clearly stating why the resolution failed and how to fix it.

Fixes: flutter#171813, Fixes: flutter#171814, also fixes: flutter#171812

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
korca0220 pushed a commit to korca0220/flutter that referenced this pull request Sep 22, 2025
…172096)

Replaces the generic assertion in `AlignmentDirectional.resolve` and
`_MixedAlignment.resolve` with
`debugCheckCanResolveTextDirection`.

This change provides a more helpful and descriptive error message when
the `TextDirection` is null, improving the developer experience by
clearly stating why the resolution failed and how to fix it.

Fixes: flutter#171813, Fixes: flutter#171814, also fixes: flutter#171812

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Nov 12, 2025
lucaantonelli pushed a commit to lucaantonelli/flutter that referenced this pull request Nov 21, 2025
…172096)

Replaces the generic assertion in `AlignmentDirectional.resolve` and
`_MixedAlignment.resolve` with
`debugCheckCanResolveTextDirection`.

This change provides a more helpful and descriptive error message when
the `TextDirection` is null, improving the developer experience by
clearly stating why the resolution failed and how to fix it.

Fixes: flutter#171813, Fixes: flutter#171814, also fixes: flutter#171812

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

framework flutter/packages/flutter repository. See also f: labels.

Projects

None yet

5 participants