[CP][stable channel] ec48e8f - DDC: Fix missing nullability from recursive type hierarchies #45907
Labels
area-infrastructure
Use area-infrastructure for SDK infrastructure issues, like continuous integration bot changes.
cherry-pick-approved
Label for approved cherrypick request
cherry-pick-review
Issue that need cherry pick triage to approve
merge-to-stable
commit(s) to merge: ec48e8f
merge instructions: clean merge
What is the issue: DDC uses a different code path when compiling mixins or extends clauses that lead to a circular reference of the class itself. That code path was losing nullability information (nullable, or legacy) of the types when they appear in those positions.
What is the fix: Stop ignoring the nullability and emit them properly in those code patterns.
Why cherrypick: This is a correctness issue, mostly noticeable when running in sound null safety mode. The bug has been present since we unforked the SDK but it was noticed and reported recently by an external Flutter Web user.
Risk: Low risk because the fix targets a code path that is only used by circular class hierarchies and then the hierarchy must include a nullable type for the change to make any difference.
Link to original issue(s): #45767
/cc @kevmoo @mit-mit @whesse @athomas @vsmenon @franklinyow @sigmundch
The text was updated successfully, but these errors were encountered: