Added tests to follow up on my upcoming coercion wrapper elimination
Merge pull request #249 from vasslitvinov/additional-tests-followup-to-coercion-wrapper-elimination

Added tests to follow up on my upcoming coercion wrapper elimination.

These tests reflect some semantic issues that I came across
during that work and are discussed in the merge message for #250.


* functions/vass/setter-passed-to-another-fun.chpl

When the result of a 'var' function F1 is passed to another function F2,
the value of 'setter' in F1 depends on the corresp. argument intent in F2.

This test documents what I believe is the correct behavior.
However, I conjecture that it is OK to be not-so-strict about it.


* functions/vass/sync-to-this-of-underlying-type.chpl

Should the value of a sync/single variable be read when it is the
'this' argument and the callee is a method on the underlying type.

The compiler currently special-cases the receiver case, bypassing
synchronization aka readFE. I believe readFE should be performed,
as illustrated by this test.

This seems to be the consensus in the email thread on an internal list
re "semantics of (sync var).someMethod()" last week.


* functions/vass/type-and-param-function-arg-conversions.chpl

Should calls to 'param' and 'type' functions read its actual arguments,
esp. when the actuals are sync variables or such, and not known at compile?

In #250, I never insert coercions for 'param' functions
and always insert coercions for 'type' functions.
This is illustrated by this test.

This behavior was mentioned in the email thread referenced above.