swirldev/swirl — pull request #205 by WilCrofter (2014-09-21 19:55:42+00:00)
Title: DON'T MERGE: Incorporate rmatch_calls in omnitest.

**BEWARE**. At the moment, this branch is completely untested in swirl, although the crucial function, `rmatch_calls` has been tested in [another package](https://github.com/WilCrofter/omnitest).

See [Creating a more robust version of omnitest() #196](https://github.com/swirldev/swirl/issues/196).

When matching expressions, `omnitest` will attempt to expand both the user's expression and the correct one using a recursive implementation of `match.call`. If `omnitest's` argument, `eval_for_class` is `TRUE`, which it is by default, the first argument of any S3 method is evaluated (in an appropriate environment) to determine its class. This enables determination of an actual function, e.g. `print.Date`, which `match.call` can use. It also adds computation and memory requirements which could be troublesome in some circumstances.

It *does not* handle:
* expansion of S4 or reference class methods,
* expressions such as `5+7` vs `7+5`,
* `=` vs `<-`.