* Use isNotEmpty()
* Use Metadata import directly
* Tighten visibility of IndexedParameterMap
* Use idiomatic require() checks
Didn't use it on a couple other places where readability would suffer
* Remove unnecessary type arg
* Remove unnecessary curly braces
* Use mutable list rather than allocate new lists
IntelliJ thinks this is a better approach
* Tighten KotlinJsonAdapter property visibility
* Suppress existing extraneous warnings
* Start MoshiKotlinExtensions
* Add Moshi.Builder.add() with reified typeOf
* Use non-shadowing name for addAdapter
* Implement KType.toType()
.javaType isn't implemented
* Don't re-wrap wrapped adapters
* Use new adapter functions in tests to smoke test
* Don't enable uses experimental in kotlin-reflect, only the test
* Use internal leniency API
* Use toType in addAdapter too
* Update error message in test
Before, the KotlinJsonAdapter threw "java.lang.IndexOutOfBoundsException: Index: 0, Size: 0" on a duplicate key when the key matched a property that was not a constructor parameter.
* Fall back to reflection when generated adapter is not found.
This is handy for development builds where kapt is disabled and models still have @JsonClass(generatedAdapter = true).
* Add test for Kotlin reflection fallback behavior.