989cebe79e
The problem was in considering `a` as trivial in following case: ``` var a = b; ``` However, that's wrong assumption, since `b` can be temporary variable itself which is further substituted by a non-trivial expression.