Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Summary: Fix a few issues: - if any child node had a side effect, and produces a temporary anyway, we would enforce ordering. But this isnt needed for a single child node, and is counter-productive for eg isset and empty. - if we wanted to output a fast-cast, we would force a temporary. But this is wrong in exist context for ArrayElementExpression and ObjectProperty expression (the temporary will be evaluated using rvalAt, rather than isset/empty). So in these cases, we would emit both an rvalAt, and an isset/empty. - type inference was wrong for static method calls to non-static functions, when there is (or might be) no object available (it failed to set implementedType to Variant, which it needs to because the call will be dispatched via an invoke helper). Test Plan: fast_tests slow_tests Reviewers: myang, qigao Reviewed By: myang CC: ps, mwilliams, myang Differential Revision: 345684
- Loading branch information