From: Junio C Hamano Date: Wed, 29 Mar 2017 15:14:19 GMT Subject: Re: [PATCH v2 16/21] Make sha1_array_append take a struct object_id * Message-ID: In-Reply-To: <20170329000648.vb2hdqfizjqjyryr@genre.crustytoothpaste.net> "brian m. carlson" writes: > On Tue, Mar 28, 2017 at 10:27:41AM -0700, Junio C Hamano wrote: >> ... >> After all, the original written by a human said E2[E3].hash (or >> array->sha1[i]) because to the human's mind, E2 is a series of >> things that can be indexed with an int E3, and even though >> >> *(E2 + E3) >> E2[E3] >> E3[E2] >> >> all mean the same thing, the human decided that E2[E3] is the most >> natural way to express this particular reference to an item in the >> array. &E2[E3] would keep that intention by the original author >> better than E2 + E3. > > I'm happy to make that change. I'm an experienced C programmer, so a > pointer addition seems very readable and natural to me, but if you think > it's better or more readable as &E2[E3], I can certainly reroll. The obvious three possible variants I listed above are equivalent to the language lawyers and the compiler ;-). This change is about dropping the need for ".hash", and I think a faithful, boring and mechanical conversion that tries to preserve the intent of the original author would be more appropriate. It is entirely possible that some places where the original said E2[E3] were easier to understand if it were *(E2 + E3), thus we may want to further rewrite such a place to (E2 + E3) instead of &E2[E3] after the mechanical conversion. Thanks.