Currently there is no way to find out where a ResolvedJavaType comes from. Java's concept of classloaders as origins of the classes it loads and unloads has no representation in JVMCI yet.
A concept similar to classloaders should be added to ResolvedJavaType.
ResolvedJavaType#getOrigin() should return an instance that implements interface (e.g. `Origin`) that allows flexibility in the expression of concrete type origin.
For most `ResolvedJavaType`s a subtype of `Origin` (e.g. `HotSpotJavaOrigin`) would get returned that allows to access
* the `ClassLoader instance` that loaded the class that is expressed as ResolvedJavaType in JVMCI
* the Java Module that the underlying class belongs to
Keeping the interface vague on the top-level would allow us to have ownership even for types that are brought into existence by other means.
A concept similar to classloaders should be added to ResolvedJavaType.
ResolvedJavaType#getOrigin() should return an instance that implements interface (e.g. `Origin`) that allows flexibility in the expression of concrete type origin.
For most `ResolvedJavaType`s a subtype of `Origin` (e.g. `HotSpotJavaOrigin`) would get returned that allows to access
* the `ClassLoader instance` that loaded the class that is expressed as ResolvedJavaType in JVMCI
* the Java Module that the underlying class belongs to
Keeping the interface vague on the top-level would allow us to have ownership even for types that are brought into existence by other means.