docs.scala-lang
docs.scala-lang copied to clipboard
Match expression's `@` operator not mentioned in docs
I would understand it not being included in the docs if this was experimental feature, but it seems to work in both Scala 2 and Scala 3. Specifically I mean this extremely helpful @ operator which allows you to both unapply the object for matching and upcast it for use in the code branch:
case a @ A(x) => a.classASpecificStuff()
case b @ B(x) if x > 0 => b.classBSpecificStuff()
It's not experimental, and I agree it's a strange omission.
I think https://docs.scala-lang.org/tour/pattern-matching.htm should cover it too.