# this already worked... string to object(string) constructor:
var Color c;
$c = "#123456";
# this already worked:
"Your color is: $c";
# but due to an optimization bug, this was broken:
# (but it works now)
# this is new:
var string s;
$s = $c;
In that last case, NodeAssignExpr just forces its rhs expected type to string when it sees its left side is a string.
The basic change in the compiler is getType() takes an optional wanted type which different nodes can try and coerce their contents into.
Next up: readonly class variables. That should be easy.