-
Notifications
You must be signed in to change notification settings - Fork 29.1k
[ Widget Preview ] Don't try to instantiate invalid @Preview()
applications
#173984
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…ications Applying `@Preview()` to an invalid AST node shouldn't cause the preview environment to throw an exception due to invalid generated code. This change adds some additional checks to ensure that invalid `@Preview()` applications are ignored. Related issue: #173959 Related stable hotfix: #173979
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request enhances the robustness of widget preview detection by adding checks to ignore invalid @Preview()
applications, preventing exceptions from invalid generated code. The changes are logical and well-tested. I've added a couple of suggestions to further improve the resilience of the AST parsing by handling nullable return types and unexpected type annotations more safely, which aligns with the goal of this PR.
packages/flutter_tools/lib/src/widget_preview/dependency_graph.dart
Outdated
Show resolved
Hide resolved
packages/flutter_tools/lib/src/widget_preview/dependency_graph.dart
Outdated
Show resolved
Hide resolved
autosubmit label was removed for flutter/flutter/173984, because - The status or check suite Mac tool_integration_tests_4_5 has failed. Please fix the issues identified (or deflake) before re-applying this label. |
flutter/flutter@2265d94...e65380a 2025-08-19 engine-flutter-autoroll@skia.org Roll Dart SDK from 502455ee300b to 9105d946af95 (3 revisions) (flutter/flutter#174002) 2025-08-18 matanlurey@users.noreply.github.com Add `open_jdk` to `Linux analyze` (flutter/flutter#173988) 2025-08-18 magder@google.com Add "team-ios" label to iOS team triage query (flutter/flutter#173997) 2025-08-18 1063596+reidbaker@users.noreply.github.com Migrate deeplink json creation to public AGP api (flutter/flutter#173794) 2025-08-18 bkonyi@google.com [ Widget Preview ] Don't crash when directory watcher restarts on Windows (flutter/flutter#173987) 2025-08-18 bkonyi@google.com [ Widget Preview ] Don't try to instantiate invalid `@Preview()` applications (flutter/flutter#173984) 2025-08-18 737941+loic-sharma@users.noreply.github.com Explain how to run Google Test tests directly (flutter/flutter#173978) 2025-08-18 58529443+srujzs@users.noreply.github.com [flutter_tools] Use DWDS 25.0.1 (flutter/flutter#173777) 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 bmparr@google.com,stuartmorgan@google.com 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
…#9850) flutter/flutter@2265d94...e65380a 2025-08-19 engine-flutter-autoroll@skia.org Roll Dart SDK from 502455ee300b to 9105d946af95 (3 revisions) (flutter/flutter#174002) 2025-08-18 matanlurey@users.noreply.github.com Add `open_jdk` to `Linux analyze` (flutter/flutter#173988) 2025-08-18 magder@google.com Add "team-ios" label to iOS team triage query (flutter/flutter#173997) 2025-08-18 1063596+reidbaker@users.noreply.github.com Migrate deeplink json creation to public AGP api (flutter/flutter#173794) 2025-08-18 bkonyi@google.com [ Widget Preview ] Don't crash when directory watcher restarts on Windows (flutter/flutter#173987) 2025-08-18 bkonyi@google.com [ Widget Preview ] Don't try to instantiate invalid `@Preview()` applications (flutter/flutter#173984) 2025-08-18 737941+loic-sharma@users.noreply.github.com Explain how to run Google Test tests directly (flutter/flutter#173978) 2025-08-18 58529443+srujzs@users.noreply.github.com [flutter_tools] Use DWDS 25.0.1 (flutter/flutter#173777) 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 bmparr@google.com,stuartmorgan@google.com 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
…ications (flutter#173984) Applying `@Preview()` to an invalid AST node shouldn't cause the preview environment to throw an exception due to invalid generated code. This change adds some additional checks to ensure that invalid `@Preview()` applications are ignored. Related issue: flutter#173959 Related stable hotfix: flutter#173979
…ications (flutter#173984) Applying `@Preview()` to an invalid AST node shouldn't cause the preview environment to throw an exception due to invalid generated code. This change adds some additional checks to ensure that invalid `@Preview()` applications are ignored. Related issue: flutter#173959 Related stable hotfix: flutter#173979
…ications (flutter#173984) Applying `@Preview()` to an invalid AST node shouldn't cause the preview environment to throw an exception due to invalid generated code. This change adds some additional checks to ensure that invalid `@Preview()` applications are ignored. Related issue: flutter#173959 Related stable hotfix: flutter#173979
Applying
@Preview()
to an invalid AST node shouldn't cause the preview environment to throw an exception due to invalid generated code.This change adds some additional checks to ensure that invalid
@Preview()
applications are ignored.Related issue: #173959
Related stable hotfix: #173979