Skip to content

Conversation

@bkonyi
Copy link
Contributor

@bkonyi bkonyi commented May 5, 2025

This change makes the detection of @Preview(...) annotations more robust by converting the analyzer AST directly to generated code rather than simply copying and pasting the original source. This allows for proper handling of the following cases WRT import prefixing:

  • The use of const
  • String interpolation
  • Other uses of constant variables in non-trivial contexts
  • Etc.

bkonyi added 6 commits April 30, 2025 09:59
…ize`

Addresses some comments from flutter.dev/go/widget-previews-architecture
This change makes the detection of `@Preview(...)` annotations more
robust by converting the analyzer AST directly to generated code rather
than simply copying and pasting the original source. This allows for
proper handling of the following cases WRT import prefixing:

  - The use of `const`
  - String interpolation
  - Other uses of constant variables in non-trivial contexts
  - Etc.
@bkonyi bkonyi requested a review from jyameo May 5, 2025 13:16
@github-actions github-actions bot added the tool Affects the "flutter" command-line tool. See also t: labels. label May 5, 2025
@bkonyi bkonyi marked this pull request as ready for review May 5, 2025 15:32
@bkonyi
Copy link
Contributor Author

bkonyi commented May 5, 2025

This is ready for an initial pass (there's a couple of small things that still need to be addressed).

Base automatically changed from address_piinks_feedback to master May 5, 2025 16:24
Copy link
Contributor

@jyameo jyameo left a comment

Choose a reason for hiding this comment

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

lgtm! 🎉

@bkonyi bkonyi added the autosubmit Merge PR when tree becomes green via auto submit App label May 15, 2025
@auto-submit
Copy link
Contributor

auto-submit bot commented May 15, 2025

autosubmit label was removed for flutter/flutter/168307, because - The status or check suite Mac_arm64 tool_tests_commands has failed. Please fix the issues identified (or deflake) before re-applying this label.

@auto-submit auto-submit bot removed the autosubmit Merge PR when tree becomes green via auto submit App label May 15, 2025
@bkonyi bkonyi added the autosubmit Merge PR when tree becomes green via auto submit App label May 16, 2025
@auto-submit auto-submit bot added this pull request to the merge queue May 16, 2025
Merged via the queue into master with commit 4baf4b4 May 16, 2025
147 checks passed
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 19, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 19, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 19, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 19, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 20, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request May 21, 2025
auto-submit bot pushed a commit to flutter/packages that referenced this pull request May 21, 2025
Roll Flutter from 9a78af5 to 33cdd8e (60 revisions)

flutter/flutter@9a78af5...33cdd8e

2025-05-21 34465683+rkishan516@users.noreply.github.com Feat: Add persistentFooterDecoration for scaffold (flutter/flutter#167524)
2025-05-21 34270884+ferraridamiano@users.noreply.github.com Removed repeated entry in `CHANGELOG.md` (flutter/flutter#165273)
2025-05-21 dacoharkes@google.com [native assets] Graduate to preview (flutter/flutter#169194)
2025-05-21 jonahwilliams@google.com [Impeller] disable gl ext render to texture on vivante. (flutter/flutter#169153)
2025-05-21 mu7ammadkamel@hotmail.com fix(widget_inspector): add null check for flex factor property to prevent exception (flutter/flutter#167890)
2025-05-21 polinach@google.com Unpin leak_tracker. (flutter/flutter#169079)
2025-05-21 69134234+sutes-work@users.noreply.github.com runtime/dart: fuchsia::io::MODE_TYPE_FILE -> V_TYPE_FILE (flutter/flutter#168952)
2025-05-21 matanlurey@users.noreply.github.com Remove `isExplicitPackageDependenciesEnabled: true`, it is the default. (flutter/flutter#169156)
2025-05-21 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#169181)
2025-05-20 ybz975218925@gmail.com Fix the issue with Tooltip (flutter/flutter#168546)
2025-05-20 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#169073)
2025-05-20 matanlurey@users.noreply.github.com Add documentation for experimental branches, update artifacts. (flutter/flutter#169109)
2025-05-20 kevmoo@users.noreply.github.com [flutter_tool] Remove unused environment flags in JS compiler (flutter/flutter#169097)
2025-05-20 bkonyi@google.com Add support for hiding widget subtrees from the widget inspector (flutter/flutter#169007)
2025-05-20 engine-flutter-autoroll@skia.org Roll Fuchsia GN SDK from jsZSHIOmQAs3URvWU... to _tkqOQZ2qB5CxDe57... (flutter/flutter#169113)
2025-05-20 matanlurey@users.noreply.github.com Skip running `Linux fuchsia_test` on non-master channel. (flutter/flutter#169106)
2025-05-19 engine-flutter-autoroll@skia.org Roll Skia from c97451da059f to 13a299964c9f (61 revisions) (flutter/flutter#169099)
2025-05-19 maRci002@users.noreply.github.com Shared element transition for predictive back (flutter/flutter#154718)
2025-05-19 58529443+srujzs@users.noreply.github.com Fix DDC library bundle format test files to correctly pass flags (flutter/flutter#169095)
2025-05-19 8847263+littleGnAl@users.noreply.github.com Clean up redundant new line in the GPUSurfaceGLSkia constructor initializer list (flutter/flutter#169031)
2025-05-19 737941+loic-sharma@users.noreply.github.com Fix keyboard_hot_restart_ios flakes (flutter/flutter#168518)
2025-05-19 mohellebiabdessalem@gmail.com fix android studio lint about lambda argument (flutter/flutter#168901)
2025-05-19 8847263+littleGnAl@users.noreply.github.com Fix typo in gpu_surface_gl_impeller.cc (flutter/flutter#168395)
2025-05-19 emmanuelferdman@gmail.com Modernize system executable detection across components (flutter/flutter#169018)
2025-05-19 56335976+stuuupidcat@users.noreply.github.com Update documentation for `Size` and `Rect` classes (flutter/flutter#168031)
2025-05-19 48603081+TahaTesser@users.noreply.github.com Update the `RangeSlider` widget to the 2024 Material Design appearance (flutter/flutter#163736)
2025-05-19 engine-flutter-autoroll@skia.org Roll Packages from 58d4016 to af0b9a9 (5 revisions) (flutter/flutter#169075)
2025-05-19 sigurdm@google.com Only bundle assets and plugins from transitive closure of dependencies (flutter/flutter#160443)
2025-05-19 15619084+vashworth@users.noreply.github.com Make FlutterGeneratedPluginSwiftPackage an Xcode root package (flutter/flutter#168789)
2025-05-19 huy@nevercode.io docs: Update deprecation message for Slider.year2023 (flutter/flutter#169053)
2025-05-18 chris@bracken.jp macOS: port ResizeSynchronizer to Swift (flutter/flutter#168959)
2025-05-17 engine-flutter-autoroll@skia.org Roll Dart SDK from dc323ec0c1a3 to 7c40eba6bf77 (3 revisions) (flutter/flutter#169024)
2025-05-17 parlough@gmail.com [tool] Remove unused `reportNullSafety` getter (flutter/flutter#168484)
2025-05-17 jsimionato@google.com Add flag to skip bundling extension safe builds in frameworks for DDM (flutter/flutter#168955)
2025-05-16 47866232+chunhtai@users.noreply.github.com Fixes Navigator calls onPopInvokedWithResult when onPopPage return false (flutter/flutter#168567)
2025-05-16 34871572+gmackall@users.noreply.github.com [hcpp/hc] Fix talkback for HC and HCPP Android platform views (flutter/flutter#168939)
2025-05-16 jonahwilliams@google.com [Impeller] separate immutable sampler descriptors. (flutter/flutter#169011)
2025-05-16 51901607+O-Hannonen@users.noreply.github.com TextField magnifier stuck on long press cancel (flutter/flutter#167881)
2025-05-16 bruno.leroux@gmail.com Fix Chip delete button semantic bounds (flutter/flutter#168310)
2025-05-16 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from Jj-iDG5uPOsFgY2_H... to XtPp9bBW49iDJ0wbA... (flutter/flutter#169009)
2025-05-16 bkonyi@google.com [ Widget Preview ] Refactor `@Preview()` detection and code generation (flutter/flutter#168307)
2025-05-16 engine-flutter-autoroll@skia.org Roll Packages from 2dff621 to 58d4016 (2 revisions) (flutter/flutter#168999)
2025-05-16 matanlurey@users.noreply.github.com Remove `unittests` from `windows_host_engine` GN targets. (flutter/flutter#168991)
2025-05-16 jessy.yameogo@gmail.com Fix bug with debugging support code not getting injected on edge devices (flutter/flutter#168073)
2025-05-16 engine-flutter-autoroll@skia.org Roll Dart SDK from a1db62a5dd14 to dc323ec0c1a3 (4 revisions) (flutter/flutter#168989)
2025-05-16 58190796+MitchellGoodwin@users.noreply.github.com Resolve Cupertino textstyle in MaterialBasedCupertinoThemeData (flutter/flutter#167597)
...
FMorschel pushed a commit to FMorschel/packages that referenced this pull request Jun 9, 2025
Roll Flutter from 9a78af5 to 33cdd8e (60 revisions)

flutter/flutter@9a78af5...33cdd8e

2025-05-21 34465683+rkishan516@users.noreply.github.com Feat: Add persistentFooterDecoration for scaffold (flutter/flutter#167524)
2025-05-21 34270884+ferraridamiano@users.noreply.github.com Removed repeated entry in `CHANGELOG.md` (flutter/flutter#165273)
2025-05-21 dacoharkes@google.com [native assets] Graduate to preview (flutter/flutter#169194)
2025-05-21 jonahwilliams@google.com [Impeller] disable gl ext render to texture on vivante. (flutter/flutter#169153)
2025-05-21 mu7ammadkamel@hotmail.com fix(widget_inspector): add null check for flex factor property to prevent exception (flutter/flutter#167890)
2025-05-21 polinach@google.com Unpin leak_tracker. (flutter/flutter#169079)
2025-05-21 69134234+sutes-work@users.noreply.github.com runtime/dart: fuchsia::io::MODE_TYPE_FILE -> V_TYPE_FILE (flutter/flutter#168952)
2025-05-21 matanlurey@users.noreply.github.com Remove `isExplicitPackageDependenciesEnabled: true`, it is the default. (flutter/flutter#169156)
2025-05-21 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#169181)
2025-05-20 ybz975218925@gmail.com Fix the issue with Tooltip (flutter/flutter#168546)
2025-05-20 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#169073)
2025-05-20 matanlurey@users.noreply.github.com Add documentation for experimental branches, update artifacts. (flutter/flutter#169109)
2025-05-20 kevmoo@users.noreply.github.com [flutter_tool] Remove unused environment flags in JS compiler (flutter/flutter#169097)
2025-05-20 bkonyi@google.com Add support for hiding widget subtrees from the widget inspector (flutter/flutter#169007)
2025-05-20 engine-flutter-autoroll@skia.org Roll Fuchsia GN SDK from jsZSHIOmQAs3URvWU... to _tkqOQZ2qB5CxDe57... (flutter/flutter#169113)
2025-05-20 matanlurey@users.noreply.github.com Skip running `Linux fuchsia_test` on non-master channel. (flutter/flutter#169106)
2025-05-19 engine-flutter-autoroll@skia.org Roll Skia from c97451da059f to 13a299964c9f (61 revisions) (flutter/flutter#169099)
2025-05-19 maRci002@users.noreply.github.com Shared element transition for predictive back (flutter/flutter#154718)
2025-05-19 58529443+srujzs@users.noreply.github.com Fix DDC library bundle format test files to correctly pass flags (flutter/flutter#169095)
2025-05-19 8847263+littleGnAl@users.noreply.github.com Clean up redundant new line in the GPUSurfaceGLSkia constructor initializer list (flutter/flutter#169031)
2025-05-19 737941+loic-sharma@users.noreply.github.com Fix keyboard_hot_restart_ios flakes (flutter/flutter#168518)
2025-05-19 mohellebiabdessalem@gmail.com fix android studio lint about lambda argument (flutter/flutter#168901)
2025-05-19 8847263+littleGnAl@users.noreply.github.com Fix typo in gpu_surface_gl_impeller.cc (flutter/flutter#168395)
2025-05-19 emmanuelferdman@gmail.com Modernize system executable detection across components (flutter/flutter#169018)
2025-05-19 56335976+stuuupidcat@users.noreply.github.com Update documentation for `Size` and `Rect` classes (flutter/flutter#168031)
2025-05-19 48603081+TahaTesser@users.noreply.github.com Update the `RangeSlider` widget to the 2024 Material Design appearance (flutter/flutter#163736)
2025-05-19 engine-flutter-autoroll@skia.org Roll Packages from 58d4016 to af0b9a9 (5 revisions) (flutter/flutter#169075)
2025-05-19 sigurdm@google.com Only bundle assets and plugins from transitive closure of dependencies (flutter/flutter#160443)
2025-05-19 15619084+vashworth@users.noreply.github.com Make FlutterGeneratedPluginSwiftPackage an Xcode root package (flutter/flutter#168789)
2025-05-19 huy@nevercode.io docs: Update deprecation message for Slider.year2023 (flutter/flutter#169053)
2025-05-18 chris@bracken.jp macOS: port ResizeSynchronizer to Swift (flutter/flutter#168959)
2025-05-17 engine-flutter-autoroll@skia.org Roll Dart SDK from dc323ec0c1a3 to 7c40eba6bf77 (3 revisions) (flutter/flutter#169024)
2025-05-17 parlough@gmail.com [tool] Remove unused `reportNullSafety` getter (flutter/flutter#168484)
2025-05-17 jsimionato@google.com Add flag to skip bundling extension safe builds in frameworks for DDM (flutter/flutter#168955)
2025-05-16 47866232+chunhtai@users.noreply.github.com Fixes Navigator calls onPopInvokedWithResult when onPopPage return false (flutter/flutter#168567)
2025-05-16 34871572+gmackall@users.noreply.github.com [hcpp/hc] Fix talkback for HC and HCPP Android platform views (flutter/flutter#168939)
2025-05-16 jonahwilliams@google.com [Impeller] separate immutable sampler descriptors. (flutter/flutter#169011)
2025-05-16 51901607+O-Hannonen@users.noreply.github.com TextField magnifier stuck on long press cancel (flutter/flutter#167881)
2025-05-16 bruno.leroux@gmail.com Fix Chip delete button semantic bounds (flutter/flutter#168310)
2025-05-16 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from Jj-iDG5uPOsFgY2_H... to XtPp9bBW49iDJ0wbA... (flutter/flutter#169009)
2025-05-16 bkonyi@google.com [ Widget Preview ] Refactor `@Preview()` detection and code generation (flutter/flutter#168307)
2025-05-16 engine-flutter-autoroll@skia.org Roll Packages from 2dff621 to 58d4016 (2 revisions) (flutter/flutter#168999)
2025-05-16 matanlurey@users.noreply.github.com Remove `unittests` from `windows_host_engine` GN targets. (flutter/flutter#168991)
2025-05-16 jessy.yameogo@gmail.com Fix bug with debugging support code not getting injected on edge devices (flutter/flutter#168073)
2025-05-16 engine-flutter-autoroll@skia.org Roll Dart SDK from a1db62a5dd14 to dc323ec0c1a3 (4 revisions) (flutter/flutter#168989)
2025-05-16 58190796+MitchellGoodwin@users.noreply.github.com Resolve Cupertino textstyle in MaterialBasedCupertinoThemeData (flutter/flutter#167597)
...
Ortes pushed a commit to Ortes/packages that referenced this pull request Jun 25, 2025
Roll Flutter from 9a78af5 to 33cdd8e (60 revisions)

flutter/flutter@9a78af5...33cdd8e

2025-05-21 34465683+rkishan516@users.noreply.github.com Feat: Add persistentFooterDecoration for scaffold (flutter/flutter#167524)
2025-05-21 34270884+ferraridamiano@users.noreply.github.com Removed repeated entry in `CHANGELOG.md` (flutter/flutter#165273)
2025-05-21 dacoharkes@google.com [native assets] Graduate to preview (flutter/flutter#169194)
2025-05-21 jonahwilliams@google.com [Impeller] disable gl ext render to texture on vivante. (flutter/flutter#169153)
2025-05-21 mu7ammadkamel@hotmail.com fix(widget_inspector): add null check for flex factor property to prevent exception (flutter/flutter#167890)
2025-05-21 polinach@google.com Unpin leak_tracker. (flutter/flutter#169079)
2025-05-21 69134234+sutes-work@users.noreply.github.com runtime/dart: fuchsia::io::MODE_TYPE_FILE -> V_TYPE_FILE (flutter/flutter#168952)
2025-05-21 matanlurey@users.noreply.github.com Remove `isExplicitPackageDependenciesEnabled: true`, it is the default. (flutter/flutter#169156)
2025-05-21 137456488+flutter-pub-roller-bot@users.noreply.github.com Roll pub packages (flutter/flutter#169181)
2025-05-20 ybz975218925@gmail.com Fix the issue with Tooltip (flutter/flutter#168546)
2025-05-20 dacoharkes@google.com [native assets] Roll dependencies (flutter/flutter#169073)
2025-05-20 matanlurey@users.noreply.github.com Add documentation for experimental branches, update artifacts. (flutter/flutter#169109)
2025-05-20 kevmoo@users.noreply.github.com [flutter_tool] Remove unused environment flags in JS compiler (flutter/flutter#169097)
2025-05-20 bkonyi@google.com Add support for hiding widget subtrees from the widget inspector (flutter/flutter#169007)
2025-05-20 engine-flutter-autoroll@skia.org Roll Fuchsia GN SDK from jsZSHIOmQAs3URvWU... to _tkqOQZ2qB5CxDe57... (flutter/flutter#169113)
2025-05-20 matanlurey@users.noreply.github.com Skip running `Linux fuchsia_test` on non-master channel. (flutter/flutter#169106)
2025-05-19 engine-flutter-autoroll@skia.org Roll Skia from c97451da059f to 13a299964c9f (61 revisions) (flutter/flutter#169099)
2025-05-19 maRci002@users.noreply.github.com Shared element transition for predictive back (flutter/flutter#154718)
2025-05-19 58529443+srujzs@users.noreply.github.com Fix DDC library bundle format test files to correctly pass flags (flutter/flutter#169095)
2025-05-19 8847263+littleGnAl@users.noreply.github.com Clean up redundant new line in the GPUSurfaceGLSkia constructor initializer list (flutter/flutter#169031)
2025-05-19 737941+loic-sharma@users.noreply.github.com Fix keyboard_hot_restart_ios flakes (flutter/flutter#168518)
2025-05-19 mohellebiabdessalem@gmail.com fix android studio lint about lambda argument (flutter/flutter#168901)
2025-05-19 8847263+littleGnAl@users.noreply.github.com Fix typo in gpu_surface_gl_impeller.cc (flutter/flutter#168395)
2025-05-19 emmanuelferdman@gmail.com Modernize system executable detection across components (flutter/flutter#169018)
2025-05-19 56335976+stuuupidcat@users.noreply.github.com Update documentation for `Size` and `Rect` classes (flutter/flutter#168031)
2025-05-19 48603081+TahaTesser@users.noreply.github.com Update the `RangeSlider` widget to the 2024 Material Design appearance (flutter/flutter#163736)
2025-05-19 engine-flutter-autoroll@skia.org Roll Packages from 58d4016 to af0b9a9 (5 revisions) (flutter/flutter#169075)
2025-05-19 sigurdm@google.com Only bundle assets and plugins from transitive closure of dependencies (flutter/flutter#160443)
2025-05-19 15619084+vashworth@users.noreply.github.com Make FlutterGeneratedPluginSwiftPackage an Xcode root package (flutter/flutter#168789)
2025-05-19 huy@nevercode.io docs: Update deprecation message for Slider.year2023 (flutter/flutter#169053)
2025-05-18 chris@bracken.jp macOS: port ResizeSynchronizer to Swift (flutter/flutter#168959)
2025-05-17 engine-flutter-autoroll@skia.org Roll Dart SDK from dc323ec0c1a3 to 7c40eba6bf77 (3 revisions) (flutter/flutter#169024)
2025-05-17 parlough@gmail.com [tool] Remove unused `reportNullSafety` getter (flutter/flutter#168484)
2025-05-17 jsimionato@google.com Add flag to skip bundling extension safe builds in frameworks for DDM (flutter/flutter#168955)
2025-05-16 47866232+chunhtai@users.noreply.github.com Fixes Navigator calls onPopInvokedWithResult when onPopPage return false (flutter/flutter#168567)
2025-05-16 34871572+gmackall@users.noreply.github.com [hcpp/hc] Fix talkback for HC and HCPP Android platform views (flutter/flutter#168939)
2025-05-16 jonahwilliams@google.com [Impeller] separate immutable sampler descriptors. (flutter/flutter#169011)
2025-05-16 51901607+O-Hannonen@users.noreply.github.com TextField magnifier stuck on long press cancel (flutter/flutter#167881)
2025-05-16 bruno.leroux@gmail.com Fix Chip delete button semantic bounds (flutter/flutter#168310)
2025-05-16 engine-flutter-autoroll@skia.org Roll Fuchsia Linux SDK from Jj-iDG5uPOsFgY2_H... to XtPp9bBW49iDJ0wbA... (flutter/flutter#169009)
2025-05-16 bkonyi@google.com [ Widget Preview ] Refactor `@Preview()` detection and code generation (flutter/flutter#168307)
2025-05-16 engine-flutter-autoroll@skia.org Roll Packages from 2dff621 to 58d4016 (2 revisions) (flutter/flutter#168999)
2025-05-16 matanlurey@users.noreply.github.com Remove `unittests` from `windows_host_engine` GN targets. (flutter/flutter#168991)
2025-05-16 jessy.yameogo@gmail.com Fix bug with debugging support code not getting injected on edge devices (flutter/flutter#168073)
2025-05-16 engine-flutter-autoroll@skia.org Roll Dart SDK from a1db62a5dd14 to dc323ec0c1a3 (4 revisions) (flutter/flutter#168989)
2025-05-16 58190796+MitchellGoodwin@users.noreply.github.com Resolve Cupertino textstyle in MaterialBasedCupertinoThemeData (flutter/flutter#167597)
...
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 14, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 15, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 15, 2025
engine-flutter-autoroll added a commit to engine-flutter-autoroll/packages that referenced this pull request Aug 16, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

tool Affects the "flutter" command-line tool. See also t: labels.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants