Great article! it is definitely one of the best resources to start getting your hands dirty with ksp.
just a small modification, in this code snippet:
`file += if (resolvedType?.nullability == Nullability.NULLABLE) "?" else ""
val genericArguments: List<KSTypeArgument> = typeArgument.type?.element?.typeArguments ?: emptyList()
visitTypeArguments(genericArguments)`
we should check for nullability after visiting the type arguments not before that, so, if you have a type like that:
`Map<String, List<*>>?` with the above code it would be generated as follows:
`Map?<String, List<*>>` which is definitely not correct , and the generated code wouldn't even compile