Skip to content

☂️ [CQ] Manage our dependence on reflection in the plugins #8806

@pq

Description

@pq

Use of reflection to access hidden APIs is prone to runtime failures (see e.g., the recent #8795) and circumvents our verification baselining.

The regression reported in #8795 could have been avoided.

  1. If we hadn't used reflection, we'd have seen a static compilation failure.
  2. If we had used reflection but had it under-test, we would have detected when the API broke.

To protect against future issues, I propose a few next steps.

  1. Review all the places we're using reflection and remove them where possible and add tests where not.
  2. Explore a verification mechanism whereby new uses of reflection are detected (akin to our baseline verifier).

(This is an umbrella issue for the Flutter AND Dart plugins.)

Metadata

Metadata

Assignees

Type

No fields configured for Task.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions