Package-level declarations
Types
Feather doesn't support different access levels (yet?), but we do need to make a constructor private. So I've added the minimum required.
This is a near identical copy of the implementation in sun.reflect.generics.reflectiveObjects. Needed to re-implement it because the sun package is not a public API.
When a generic type is in the form MyClass<>, then the "" is defined as a StarProjection.
Functions
When given two primitive number types, works out which is the "larger", so that an operation between the two will "auto-cast" to the "larger" type so that data is not lost.
Returns the generic type of Type toResolve, which may be a TypeVariable, or a ParametrizedType containing TypeVariables.
Assumes the top of the stack is array, index, value, and is replaced with