package test import kotlinx.android.parcel.* import android.os.* object StringParceler : Parceler { override fun create(parcel: Parcel) = TODO() override fun String.write(parcel: Parcel, flags: Int) = TODO() } object CharSequenceParceler : Parceler { override fun create(parcel: Parcel) = TODO() override fun CharSequence.write(parcel: Parcel, flags: Int) = TODO() } class StringClassParceler : Parceler { override fun create(parcel: Parcel) = TODO() override fun String.write(parcel: Parcel, flags: Int) = TODO() } @TypeParceler class MissingParcelizeAnnotation(val a: @WriteWith String) @Parcelize @TypeParceler class ShouldBeClass(val a: @WriteWith<StringClassParceler> String) : Parcelable @Parcelize class Test( val a: @WriteWith<StringParceler> Int, val b: @WriteWith String, val c: @WriteWith<StringParceler> CharSequence, val d: @WriteWith String, val e: @WriteWith CharSequence ) : Parcelable @Parcelize @TypeParceler class Test2(@TypeParceler val a: String) : Parcelable @Parcelize @TypeParceler<String, StringParceler> @TypeParceler<String, CharSequenceParceler> class Test3(val a: String) : Parcelable