Repository navigation
[ Widget Preview ] Handle collections and records in custom preview annotations - #184518
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Code Review
This pull request adds support for generating code for Dart collections (List, Map, Set) and Records within the widget preview generator. It also updates the DartFormatter to use language version 3.7.0 and includes new test cases. Review feedback highlights a missing toRecordValue extension method and an incorrect destructuring pattern, a potentially unstable hardcoded language version in the formatter, and an invalid fs.dispose() call in the tests.
jyameo
previously approved these changes
Apr 2, 2026
| for (final item in toSetValue()!) item.toExpression(), | ||
| ]), | ||
| RecordType() => () { | ||
| final (:Map<String, DartObject> named, :List<DartObject> positional) = toRecordValue()!; |
Contributor
There was a problem hiding this comment.
Maybe use null-safe access or a check in case toRecordValue returns null?
Contributor
Author
There was a problem hiding this comment.
If type is RecordType, toRecordValue() should always be non-null.
…nnotations The code generator wasn't configured to handle collections and records as preview arguments as these types weren't originally accepted by the `Preview(...)` constructor. This caused these types to be treated as regular instances, resulting in the previewer crashing. This change adds support for collections and records as preview annotation arguments. Fixes flutter#181754
bkonyi
force-pushed
the
fix_previews_with_lists
branch
from
April 2, 2026 19:33
50f74fc to
80e9a12
Compare
engine-flutter-autoroll
added a commit
to engine-flutter-autoroll/packages
that referenced
this pull request
Apr 3, 2026
… preview annotations (flutter/flutter#184518)
auto-submit Bot
pushed a commit
to flutter/packages
that referenced
this pull request
Apr 3, 2026
flutter/flutter@0f401ee...7245c3f 2026-04-03 [email protected] Roll Skia from c07c67045b6d to 5d847ba5c4aa (1 revision) (flutter/flutter#184570) 2026-04-03 [email protected] Roll Dart SDK from 3c7a79045b8b to 46f49142acd9 (1 revision) (flutter/flutter#184567) 2026-04-03 [email protected] Roll ICU from ee5f27adc28b to ff7995a708a1 (5 revisions) (flutter/flutter#184566) 2026-04-03 [email protected] Roll Skia from 9ae8231be181 to c07c67045b6d (4 revisions) (flutter/flutter#184562) 2026-04-03 [email protected] Roll Fuchsia Linux SDK from BFLjk6Uwd0gs_Hkdk... to PpL3Bn2YMb2h9LbdK... (flutter/flutter#184556) 2026-04-03 [email protected] Roll Skia from 0566b2f5f0d1 to 9ae8231be181 (1 revision) (flutter/flutter#184547) 2026-04-03 [email protected] Roll Dart SDK from 6008eaddd589 to 3c7a79045b8b (3 revisions) (flutter/flutter#184551) 2026-04-03 [email protected] Fix wide gamut macos integration test (flutter/flutter#184427) 2026-04-02 [email protected] forward an application name to DDS (flutter/flutter#184459) 2026-04-02 [email protected] Roll Skia from 973117cfa875 to 0566b2f5f0d1 (8 revisions) (flutter/flutter#184534) 2026-04-02 [email protected] Support different joins for stroked rects in uber_sdf, fix incorrect aa (flutter/flutter#184395) 2026-04-02 [email protected] [ Widget Preview ] Handle collections and records in custom preview annotations (flutter/flutter#184518) 2026-04-02 [email protected] Moves android_semantics_integration_test out of staging (flutter/flutter#184079) 2026-04-02 [email protected] Roll Packages from b3fcf14 to 66bf7ec (4 revisions) (flutter/flutter#184514) 2026-04-02 [email protected] Fix line breaks being lost when copying after selection gesture in SelectableRegion (flutter/flutter#184421) 2026-04-02 [email protected] Add plugin version to SwiftPM package symlink directory (flutter/flutter#183668) 2026-04-02 [email protected] Add our own wrapper for `CommonExtension` due to change in signature from 8.x->9.0 (flutter/flutter#184433) 2026-04-02 [email protected] [Android] Use EdgeToEdge.enable/WindowCompat for edge-to-edge mode instead of deprecated View flags (flutter/flutter#183072) 2026-04-02 [email protected] [data_assets] Cleanup tests (flutter/flutter#184209) 2026-04-02 [email protected] Enable SPM by default on Stable (flutter/flutter#184495) 2026-04-02 [email protected] Roll Dart SDK from d84bdfeb45eb to 6008eaddd589 (2 revisions) (flutter/flutter#184513) 2026-04-02 [email protected] Reland "Even more awaits" (flutter/flutter#184467) 2026-04-02 [email protected] Roll Skia from bb9fd8653739 to 973117cfa875 (2 revisions) (flutter/flutter#184498) 2026-04-02 [email protected] [ Widget Preview ] Use analysis server for widget preview detection (flutter/flutter#184473) 2026-04-02 [email protected] [web_ui] Fix avoid_type_to_string lint violation (flutter/flutter#184342) 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],[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
mbcorona
pushed a commit
to mbcorona/flutter
that referenced
this pull request
Apr 15, 2026
…nnotations (flutter#184518) The code generator wasn't configured to handle collections and records as preview arguments as these types weren't originally accepted by the `Preview(...)` constructor. This caused these types to be treated as regular instances, resulting in the previewer crashing. This change adds support for collections and records as preview annotation arguments. Fixes flutter#181754
creatorpiyush
pushed a commit
to creatorpiyush/packages
that referenced
this pull request
Jun 10, 2026
…r#11427) flutter/flutter@0f401ee...7245c3f 2026-04-03 [email protected] Roll Skia from c07c67045b6d to 5d847ba5c4aa (1 revision) (flutter/flutter#184570) 2026-04-03 [email protected] Roll Dart SDK from 3c7a79045b8b to 46f49142acd9 (1 revision) (flutter/flutter#184567) 2026-04-03 [email protected] Roll ICU from ee5f27adc28b to ff7995a708a1 (5 revisions) (flutter/flutter#184566) 2026-04-03 [email protected] Roll Skia from 9ae8231be181 to c07c67045b6d (4 revisions) (flutter/flutter#184562) 2026-04-03 [email protected] Roll Fuchsia Linux SDK from BFLjk6Uwd0gs_Hkdk... to PpL3Bn2YMb2h9LbdK... (flutter/flutter#184556) 2026-04-03 [email protected] Roll Skia from 0566b2f5f0d1 to 9ae8231be181 (1 revision) (flutter/flutter#184547) 2026-04-03 [email protected] Roll Dart SDK from 6008eaddd589 to 3c7a79045b8b (3 revisions) (flutter/flutter#184551) 2026-04-03 [email protected] Fix wide gamut macos integration test (flutter/flutter#184427) 2026-04-02 [email protected] forward an application name to DDS (flutter/flutter#184459) 2026-04-02 [email protected] Roll Skia from 973117cfa875 to 0566b2f5f0d1 (8 revisions) (flutter/flutter#184534) 2026-04-02 [email protected] Support different joins for stroked rects in uber_sdf, fix incorrect aa (flutter/flutter#184395) 2026-04-02 [email protected] [ Widget Preview ] Handle collections and records in custom preview annotations (flutter/flutter#184518) 2026-04-02 [email protected] Moves android_semantics_integration_test out of staging (flutter/flutter#184079) 2026-04-02 [email protected] Roll Packages from b3fcf14 to 66bf7ec (4 revisions) (flutter/flutter#184514) 2026-04-02 [email protected] Fix line breaks being lost when copying after selection gesture in SelectableRegion (flutter/flutter#184421) 2026-04-02 [email protected] Add plugin version to SwiftPM package symlink directory (flutter/flutter#183668) 2026-04-02 [email protected] Add our own wrapper for `CommonExtension` due to change in signature from 8.x->9.0 (flutter/flutter#184433) 2026-04-02 [email protected] [Android] Use EdgeToEdge.enable/WindowCompat for edge-to-edge mode instead of deprecated View flags (flutter/flutter#183072) 2026-04-02 [email protected] [data_assets] Cleanup tests (flutter/flutter#184209) 2026-04-02 [email protected] Enable SPM by default on Stable (flutter/flutter#184495) 2026-04-02 [email protected] Roll Dart SDK from d84bdfeb45eb to 6008eaddd589 (2 revisions) (flutter/flutter#184513) 2026-04-02 [email protected] Reland "Even more awaits" (flutter/flutter#184467) 2026-04-02 [email protected] Roll Skia from bb9fd8653739 to 973117cfa875 (2 revisions) (flutter/flutter#184498) 2026-04-02 [email protected] [ Widget Preview ] Use analysis server for widget preview detection (flutter/flutter#184473) 2026-04-02 [email protected] [web_ui] Fix avoid_type_to_string lint violation (flutter/flutter#184342) 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],[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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The code generator wasn't configured to handle collections and records as preview arguments as these types weren't originally accepted by the
Preview(...)constructor. This caused these types to be treated as regular instances, resulting in the previewer crashing.This change adds support for collections and records as preview annotation arguments.
Fixes #181754