tree 412fb5f344c4bc3419fa03e681857da572630daf
parent dc3bfc6d371e842e860c4d5b9c847f6f119049d5
author Paul Berry <paulberry@google.com> 1663260808 -0700
committer GitHub <noreply@github.com> 1663260808 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJjI1iICRBK7hj4Ov3rIwAA+qIIAHdcJ0pN/EZKAvVajs+ofhxE
 VwRB26jAdL7xAk0695fOJfSMl0umJAfh1kYX/E4GGbOYsvG3UXoYOsxpx2ZPgD2j
 ipL3RXomJns7Mn/eEoULs/BgDSsIIgoh0Pv/gaXdCnoRpIJb6VHQMtAKzKAuJ0JP
 9uPVkRuQUMJVtUMD8sVUZpPhSB0Y6M4b/TocvcbbLT7m1GgbedEVH5ucc2RFxNmL
 qlZRpX1vNycHqDSn1ZNvLzFBaNcEPVaSU5Ha+kLcl3nZYWdf6rx6kwNqPbTCta6u
 rwXUZgS6xJHHEIhijfezfNDie6SbuDiyRgXnUWgVsN9XmAdJDRGJ+8z5wOTroFU=
 =1VM8
 -----END PGP SIGNATURE-----
 

[plugin_platform_interface] Switch `PlatformInterface._instanceToken` to an expando. (#6411)

This change replaces `PlatformInterface._instanceToken` (an instance
field that points from a `PlatformInterface` to its corresponding
token) with an expando that maps from `PlatformInterface` to `Object`.
There is no change to the public API, and no change to the behavior of
users' production code.

This change ensures that if a customer tries to implement
`PlatformInterface` using `implements` rather than `extends`, the code
in `PlatformInterface._verify` won't try to access the private
`_instanceToken` field in `PlatformInterface`.  This is important
because an upcoming change to the dart language is going to cause such
accesses to throw exceptions rather than deferring to `noSuchMethod`
(see https://github.com/dart-lang/language/issues/2020 for details).

Fixes https://github.com/flutter/flutter/issues/109339.