promote return into complex right expressions (closes #1912)
TThrow also counts
handle local assignment
recurse
support field and array assignment