tree db5470d49dd0239a6e0d4349f04d2a842ded34dc
parent fb93b7c5e64e4cde139a1d0eb7d6123797e8c59d
author Bob Nystrom <rnystrom@google.com> 1655386491 -0700
committer GitHub <noreply@github.com> 1655386491 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJiqzF7CRBK7hj4Ov3rIwAAQKgIAHfapfzr+LqJWzmHGAofnyCq
 GP8yAsAVZ472f3qxvvWnFHBy4DBnpRSNL3W2k4fsO106waV5n2Lg02IJio4gAQgt
 05lnIsNuMkafDacwhqjht7u+Y2+AKqjT0zhhUngXaWesfuOg7+9JS40575A7QgYI
 jWcmMuwQzJfKSIxvW3c+Mx34Y6akuqb1Wk4MA7HXz7g/Byqm/UvkKYn3sABur9jG
 xlHNfsu/ZSGNhXVtwVGF2Lz4IcGnps1AHFuyLWrty5HuYRpZyGpxh0z6eLfAkTbV
 S8pG94aTnf2d+Ps3YbZ8iK5Mk2UAN7pgcfj+IQdgHsrOtmDbkMjAWHfk8du3N0A=
 =remr
 -----END PGP SIGNATURE-----
 

Refactor how child chunks are stored. (#1117)

* Refactor how child chunks are stored.

Given a piece of code like:

    main() {
      a();
      b();
    }

There are top level chunks for `main() }` and `}`, and the chunks for
`a()` and `b()` are children.

Previously, the code stored those child chunks in the preceding parent
chunk (so `main() {` here). But it's the subsequent chunk (`}`) that
determines whether the block contents are actually split, so that
doesn't make a lot of sense and leads to weird `+ 1` and `- 1` when
working with nested chunks.

This refactors the code so that child chunks are stored on the same
chunk that determines whether or not they split. This means that chunks
are now written in a post-order traversal: a block chunk's children come
before its own text.

Since we now know that a chunk will have children at the moment that
it's created, removed the old ChunkBlock class and replaced it with a
BlockChunk subclass of Chunk.

Also added a bunch of tests around trailing whitespace in blocks. When I
was testing this change on a corpus of code, I thought it inadvertently
changed some behavior, but it turns out that it was the previous
refactoring (which did deliberately change block formatting) and not
this one. These tests help pin that behavior down.

This commit here has zero changes on the formatter's visible behavior.

* Apply review feedback.