Skip to content

[CP][stable channel] ec48e8f - DDC: Fix missing nullability from recursive type hierarchies #45907

Closed
@nshahan

Description

@nshahan

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

Metadata

Metadata

Assignees

Labels

area-infrastructureUse area-infrastructure for SDK infrastructure issues, like continuous integration bot changes.cherry-pick-approvedLabel for approved cherrypick requestcherry-pick-reviewIssue that need cherry pick triage to approvemerge-to-stable

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions