anchor.diff:    }
   
     Expression visitSetStatic(SetStatic node) {
  +    allowRhsPropagation.add(true);
       node.value = visitExpression(node.value);
  +    allowRhsPropagation.removeLast();
       return node;
     }
   
  
positive.code:   }
  
    Expression visitConstant(Constant node) {
      if (!environment.isEmpty) {
        Constant constant = getRightHandConstant(environment.last);
        if (constant != null && constant.value == node.value) {
          return visitExpression(environment.removeLast());
  
negative.code:       //
        //     { E.foo = x; bar(x) } ==> bar(E.foo = x)
        //
        if (isRhsPropagationAllowed &&
            getRightHandVariable(binding) == node.variable) {
          environment.removeLast();
          --node.variable.readCount;
          return visitExpression(binding);
  