google / ksp

Kotlin Symbol Processing API

Home Page:https://github.com/google/ksp

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[feature request] Retrieve property default value for compile time constants

Chuckame opened this issue · comments

Currently, it's not possible to retrieve the default value as it is expensive to compute (#642).

This feature request is not about extracting all the default values, but just the compile time constants, that would cover the same values as annotations. It would help a lot for static analysis, for schema generation by example.

Example:

data class MyClass(
   val staticString: String = "static string", // would extract 'static string'
   val staticInt: Int = 42, // would extract '42'
   val fieldDependentDefault: String = staticString, // would extract 'static string' as it is the static default of staticString field
   val dynamicDefault: String = UUID.random().toString(), // would extract nothing (or a DYNAMIC placeholder) as it is not constant
)

EDIT: fixed a typo on dynamicDefault example

This is fair, we will revisit this once KSP2 is stable.

Great news! Do you have a planned date for ksp2 to be stable?

I would also be glad to see this feature in future releases.