Presently, type annotations and tree nodes are associated using the source position of the tree node. For example, in the following type-annotated cast: {code} (@A List<@B Integer @C []>) foo {code} All three annotations must be given the source position of the *cast*, as opposed to the actual annotations. This is misleading, and leads to errors when trying to edit code. We should come up with a better way to update the bytecode offsets of type annotations.