arrayExpressionToCommonType() changes the contents of exps[], so it is still about copy-on-write even if none of it errors. I do not see the reason for making it a bool return; it is a step away from COW, and we need to eventually get to COW.