Search code examples
scalapartialfunction

Extract the main value from partial case


Let's say I'm defining some cases to match, where I care only about verifying an argument:

BytecodeChains.partial {
    case CallProperty(name, args) if name == someConstant => xxx
} ....

where the function signature is:

BytecodeChains.partial[A] (f: PartialFunction[AbstractOp, A]): ...

How can I return the whole matched CallProperty object? I could create a new one, but that's a bit ugly. Is there some way to reference the original in place of xxx?


Solution

  • case xxx @ CallProperty(name, args) if name == someConstant => xxx
    

    You can also do this btw:

    case xxx @ CallProperty(`someConstant`, args) => xxx