tree 89222daf494d5e9a635de2009d81233e7c711ae2
parent 1d7014c17b570f8f4dec364f6559b6e1d853b903
author Johnni Winther <johnniwinther@google.com> 1667385952 +0000
committer Commit Queue <dart-scoped@luci-project-accounts.iam.gserviceaccount.com> 1667385952 +0000

[cfe] Visit all nodes during top-level inference

This changes the way the CFE perform top level inference. Previously
the inference would try to visit only the nodes needed to compute the
resulting type. In particular, statements (for instance inside function
expressions) would never be visited during top level inference.

This approach didn't match the analyzer approach which always visits
the whole field initializer, including any function expressions.
This has lead to various issues in the wild:

  https://github.com/dart-lang/sdk/issues/49528
  https://github.com/dart-lang/sdk/issues/50351

And triggered the language issue:

  https://github.com/dart-lang/language/issues/1650

While the old CFE approach allowed for more complex field initializers,
without reporting a cyclic dependency, for instance

   var f = () { f(); };

it didn't fit well with the horizontal inference introduced in
the 'inference-update-1' feature, since this relies on full inference of
function expressions. For instance for

   T method<T>(T Function(String?) f) { ... }
   var a = method((o) => o?.length ?? 0);
   var b = method((o) => o != null ? o.length : 0);
   var c = method((o) { return o?.length ?? 0; };

the CFE wouldn't infer same type for `a`, `b` and `c`. Furthermore
it would skip the condition `o != null` in `b` because it "didn't need
the type" (it is known to be `bool`), missing that the condition
promotes `o` to non-nullable in the true branch, leading to reporting
an error on `o.length` for being a potentially nullable access.

For these reasons, the CFE is now changed to _always_ visit the whole
field initializer, during top-level inference, making it align itself
with the analyzer implementation.

Closes #49528

Change-Id: Ic409b42699bb0e986f9d041ccb894863c952edf7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/267061
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
