I have code like this:
def foo(using s: String) = ???
case class S(s: String)
val value = S("some string")
value match {
case S(str) =>
given s: String = str
foo
}
Is there a way to declare the variable used in the unpacking (str) as given, rather than creating an explicit reference to it on the next line.
The best that I've found so far is
case S(str) =>
given String = str
which lets me at least avoid having a second name for the variable, but it would be nice to get it all into one line.
The real code uses a more distinctive type, so any problems related to using a very common class (String) as a given are artifacts of making a minimal example
You can pattern match givens with the pattern
<identifier> @ given <type>, like this: