OK, I updated the code in `arrayExpressionToCommonType`. By not storing `ErrorExp` to `exps`, this function will not make the original AST invalid anymore. Therefore copy-on-write is not necessary.

I think this is the proper style of error propagation for array of expressions (For example, I recently fixed `semanticTiargs` based on that logic). Of course the logic should be applied to whole of dmd code, but I'm working in progress for that.