Handle bespokes in collections
Summary:
We'll refuse to put bespoke Hack arrays into Vector, Map, and Set for now, escalating instead.
Note that the JIT already guards to vanilla in this case, so we don't have to slow it down. We only need to put the escalation into collections::alloc, used by the interpreter.
This change also reveals an incorrect assertion in LoggingArray: a claim that we've never shared the inner array with anyone else. The implementation of LoggingArray doesn't rely on this claim, so we just drop the assertion.
Reviewed By: ricklavoie
Differential Revision:
D21829178
fbshipit-source-id:
e7a2385808cb50ce58bc67a1acc5735e530bc130