У меня есть уточненное определение типа:
type D = String Refined Regex "(a|b)"
Я могу использовать уточнение в одной строке, выражающей значение, но по какой-то причине autoRefineV
не поднимает его при использовании в контексте карты, даже если тип явный. Например:
import eu.timepit.refined.auto.autoRefineV
val test1: D = "a" // this is fine
val test2 = Map[D, String]("a" -> "test") // this fails
val test3: Map[D, String] = Map("a" -> "test") // this also fails
val test4 = Map(test1 -> "test") // this works!
Я получаю ошибку:
found : (String, String)
required : (D, String)
Так почему-то значение не преобразуется автоматически из строки в тип D
? Нужно ли определять уточненный объект типа Map[D, String]
? Нужно ли использовать свидетеля (которого я понятия не имею, как использовать)?