Omico
03/13/2024, 7:13 AM@Target(
AnnotationTarget.PROPERTY,
AnnotationTarget.TYPE,
AnnotationTarget.VALUE_PARAMETER,
)
annotation class StringResource
// formatX only works with @StringResource annotated strings
fun @StringResource String.formatX(vararg arguments: Any): String = format(args = arguments)
fun main() {
Strings().hello.formatX("xxx")
// The below line should be shown as an error
"Hello, %s".formatX("xxx")
}
data class Strings(
@StringResource val hello: String = "Hello, %s",
)
Youssef Shoaib [MOD]
03/13/2024, 10:34 AM@JvmInline value class StringResource(val underlying: String)
fun StringResource.formatX(vararg arguments: Any): String = underlying.format(args = arguments)
Omico
03/13/2024, 7:43 PM