8e2539d24c
Marks `Function` as an extensible type so that DDC knows to use the symbolized version of the equals operator. The `Function` class at runtime already has its equals method attached as the "symbolized" version. Consider `a == b`. When DDC knows `a` is statically a raw `Function` and non-nullable (more likely with sound null safety) the generated code should call the symbolized equals member ex: `a[$_equals](b)`. Without this change the generated code would be `a.equals(b)` and fail at runtime because the method does not exist. With this change co19_2/LibTest/core/Function/operator_eq_A01_t01 starts passing. Change-Id: I80dd2abbbb04f1b7ab7e21dd14561a45f6e81459 Fixes: https://github.com/dart-lang/sdk/issues/45601 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/194204 Commit-Queue: Nicholas Shahan <nshahan@google.com> Reviewed-by: Sigmund Cherem <sigmund@google.com>