[pigeon] Tidy GeneratorAdapters to be const, with getters instead of fields#11131
[pigeon] Tidy GeneratorAdapters to be const, with getters instead of fields#11131srawlins merged 2 commits intoflutter:mainfrom
Conversation
There was a problem hiding this comment.
Code Review
This pull request refactors the GeneratorAdapter classes to enable const constructors. This involves converting the fileTypeList instance field to a getter in GeneratorAdapter and its subclasses, and changing languageString to a static const field. Additionally, the _openSink function is refactored for conciseness by removing unnecessary local variables.
tarrinneal
left a comment
There was a problem hiding this comment.
Seems like this is old code that I would guess was just here for testing when it was added. This seems like a good improvement, thank you
|
@stuartmorgan-g more exceptions here I believe |
|
This is a non-trivial (even if relatively straightforward) set of changes to production code, so our standard practice to version this for continuous release applies. |
|
Thanks! I've bumped the version now. |
While walking through the GeneratorAdapter code, I noticed a few oddities. While tidying things up, I found that each of the subclasses could have const constructors, which I think are preferred by the Flutter team.
fileTypeListfield which never stored a value. Each subclass implements the parent class, so the constructor was never called. I changed the field to a getter (for the interface), and removed the constructor.String languageStringwhich could be made static and const.List<FileType> fileTypeListinto a getter, to avoid the "Fields in const classes should not have initializers" enforced lint rule.this.fileTypeListas a constructor parameter, but a value was essentially never passed in. (There was once instance in a test, but it had no effect.) So I removed this constructor parameter, moving the const default values to the getter value._openSinkhad some unnecessary statements, so I made it more concise. Thesinkvariable was unnecessary, and thefilevariable was only used in one else-branch, and so should be declared in that block.Pre-Review Checklist
[shared_preferences]///).