Re: [PATCH v2 16/21] Make sha1_array_append take a struct object_id *
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 29, 2017, 15:14 UTC
- Message-ID
- <xmqqvaqsazec.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <20170329000648.vb2hdqfizjqjyryr@genre.crustytoothpaste.net>
"brian m. carlson" <sandals@crustytoothpaste.net> writes:
Show 18 quoted lines
> 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.