mirror of
https://github.com/dart-lang/sdk
synced 2024-09-15 21:50:11 +00:00
32c22da2b6
* avoid allocating _RecordType objects for `<obj> is/as <record-type>` => Introduce `Record._checkRecordType()` => Use `Record._recordRuntimeType` (which is now not masquerading) for other purposes (e.g. verification) * avoid using masqueraded types for `<obj> is/as <record-type>` => Introduce `Record._masqueradedRecordRuntimeType` Although we introduce 2 extra methods on `Record` that are overriden, it's O(record-shapes-in-program) and therefore not a big overhead. => This will enforce the invariant that the actual type check implementation (i.e. for `<obj> is/as <type>` or for `<type> <: <type>`) *never* calls back into masquerading functionality => This in return means we can make the masquerading functionality using `<obj> is <type>` checks. Change-Id: I3e3a0411022042a8e735aaeed396cc8f90d8c9c5 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/349800 Reviewed-by: Slava Egorov <vegorov@google.com> |
||
---|---|---|
.. | ||
bin | ||
lib | ||
.gitignore | ||
api_readme.md | ||
BUILD.gn | ||
OWNERS |