Typing changes for reactive functions
Summary:
This adds a bunch of checks for reactive functions. Specifically:
1. Reactive functions may only call other reactive functions
2. Reactive functions may not set object properties(when we add mutability, we can allow this behavior for mutable objects)
3. Reactive functions cannot modify(append or set to) Vectors or Sets.
4. Reactive functions are subtypes of nonreactive functions, but not vice versa
This isn't all the checks we need to make for reactive functions. Namely, at least these are missing:
1. Lambdas in reactive functions are treated automatically as non-reactive for now(until we can agree on a behavior here).
Reviewed By: KendallHopkins
Differential Revision:
D6317851
fbshipit-source-id:
08e0c150cfd80bb2eca160dca4bbc088a7dfdf1e