This allows for reuse of adapters as well as a faster traversal rather than the reflective fall-through. Before - it would try the whole constructor lookup before trying to walk up to the superclass as a stop-gap and also potentially create duplicate adapters in Moshi's cache.
This also revealed in testing that GenerateTypeAdapter didn't support nested types, which are fixed opportunistically here using Moshi's naming scheme.
This allows for reuse of adapters as well as a faster traversal rather than the reflective fall-through. Before - it would try the whole constructor lookup before trying to walk up to the superclass as a stop-gap and also potentially create duplicate adapters in Moshi's cache.
This also revealed in testing that GenerateTypeAdapter didn't support nested types, which are fixed opportunistically here using Moshi's naming scheme.