Extract DiagnosticsNode serializer from WidgetInspector#34012
Extract DiagnosticsNode serializer from WidgetInspector#34012goderbauer merged 24 commits intoflutter:masterfrom
Conversation
69c7a23 to
6d441db
Compare
There was a problem hiding this comment.
@pq with this change we would need to add a lint to warn if DiagnosticsProperty is used instead of ColorDiagnosticsProperty.
There was a problem hiding this comment.
this seems a bit odd. I would expect this is the delegate that should be used when expanding the properties of the value not for everything.
This could do strange things for nodes with zero properties, a Diagnosticable value and multiple children. Granted that is a bit of an edge case but the behavior would be quite surprising.
There was a problem hiding this comment.
I don't understand what you mean by this? What should the delegate do? I have changed the logic here a little bit.
There was a problem hiding this comment.
@pq This one also needs a lint so we don't get bugs when someone uses DiagnosticsProperty instead.
* master: (24 commits) [flutter_tool,fuchsia] Update the install flow for packaging migration. (flutter#34447) SliverFillRemaining flag for different use cases (flutter#33627) SizedBox documentation (flutter#34424) Change API doc link to api.dart.dev (flutter#34388) 2589785 Roll src/third_party/skia 87e885038893..c3252a04b377 (3 commits) (flutter/engine#9327) (flutter#34484) ace5d59 Fix rawTypes errors in Android embedding classes (flutter/engine#9326) (flutter#34481) bf0def6 Roll src/third_party/skia 4c4945a25248..87e885038893 (1 commits) (flutter/engine#9325) (flutter#34471) Roll engine f1d821d..6f5347c (13 commits) (flutter#34466) Allow "from" hero state to survive hero animation in a push transition (flutter#32842) Roll pub dependencies (flutter#33677) Skip flaky test on Windows (flutter#34464) Allow flaky tests to pass or fail and mark web tests as flaky (flutter#34456) Dont depend on web SDK unless running tests on chrome (flutter#34457) Fix semantics_tester (flutter#34368) Include raw value in Diagnostics json for basic types (flutter#34417) Refactor Gradle plugin (flutter#34353) Allow web tests to fail in cirrus config (flutter#34436) skip bottom_sheet (flutter#34430) Remove unused flag `--target-platform` from `flutter run` (flutter#34369) Extract DiagnosticsNode serializer from WidgetInspector (flutter#34012) ...
| test('IconDataDiagnosticsProperty includes valueProperties in JSON', () { | ||
| IconDataProperty property = IconDataProperty('foo', const IconData(101010)); | ||
| final Map<String, Object> valueProperties = property.toJsonMap(const DiagnosticsSerializationDelegate())['valueProperties']; | ||
| print(valueProperties); |
Description
Extracts the serialization logic for DiagnosticsNodes from the WidgetInspector, generalizes it, and puts it into diagnostics.dart to make it re-usable for #29375.
Related Issues
Pre-work for #29375
Tests
I added the following tests:
Checklist
Before you create this PR confirm that it meets all requirements listed below by checking the relevant checkboxes (
[x]). This will ensure a smooth and quick review process.///).flutter analyze --flutter-repo) does not report any problems on my PR.Breaking Change
Does your PR require Flutter developers to manually update their apps to accommodate your change?
DiagnosticsNode.toJsonMapnow takes a SerializationDelegate.