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.