66d3eedb33
This change adds analysis of function calls when closure target of a call can be inferred. Local functions are now analyzed separately from enclosing members. Inferred result type of function calls is now used in the AOT compiler. Time of AOT compilation step 2 (TFA) on a large Flutter application: Before: 59.448s After: 61.870s (+4%) Maintaining hierarchy of function types and analysis of all function calls is not feasible as it causes unbearable increase in AOT compilation time. TEST=existing Issue: https://github.com/dart-lang/sdk/issues/39692 Change-Id: Ieb4d5dce23868b5ab5c87fa1e77e49b85fd656fe Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/345083 Reviewed-by: Slava Egorov <vegorov@google.com> Reviewed-by: Martin Kustermann <kustermann@google.com> Commit-Queue: Alexander Markov <alexmarkov@google.com>