via and activate/deactivate chaining
Summary:
Better support and test chaining of `via` and `activate`/`deactivate`.
The real problem is that without the ref qualifier a multiple chain of lvalue references can end up with a destructed object being referenced after.
https://akrzemi1.wordpress.com/2014/06/02/ref-qualifiers/
Test Plan:
This is mostly new tests that would fail and now pass.
I think maybe the tests are a bit weak, it would be good to find a way to ensure we aren't going to see the access-after-free bugs in these tests.
Reviewed By: jsedgwick@fb.com
Subscribers: trunkagent, fugalh, exa, njormrod, folly-diffs@
FB internal diff:
D1714873
Tasks:
5489801
Signature: t1:
1714873:
1417628538:
9e610c5ba5e0a22c19a11d53aa956be45d585058