1841a8d9a4
Typically these mixins introduce additional reflective features on the messages extending them. This made it unfavorable to tree shake fields on these messages. However, some customers have tooling that makes it so the set of messages/fields accessed reflectively through mixins is statically known. Therefore, they can inject special code to retain those messages/fields and still benefit from treeshaking on the rest of the fields in those messages. This is a separate flag because it introduces new opportunities for breakages that users may want to roll out separately. Testing on an internal build showed an additional ~2.8% code size reduction from this additional tree shaking. Change-Id: I6bbe6209acc26f8e8904c81f6960b71e4b516f25 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/414820 Reviewed-by: Mayank Patke <fishythefish@google.com> Commit-Queue: Nate Biggs <natebiggs@google.com>