Pattern matches an the scrutineeExpr against the patternExpr and returns a tuple with the matched holes if successful.
Pattern matches an the scrutineeExpr against the patternExpr and returns a tuple with the matched holes if successful.
Examples:
ExprMatch.unapply('{ f(0, myInt) })('{ f(0, myInt) }, _) will returnSome(()) (where() is a tuple of arity 0)ExprMatch.unapply('{ f(0, myInt) })('{ f(patternHole[Int], patternHole[Int]) }, _) will returnSome(Tuple2('{0}, '{ myInt }))ExprMatch.unapply('{ f(0, "abc") })('{ f(0, patternHole[Int]) }, _) will returnNone due to the mismatch of types in the holeHoles:
x of typeExpr[U] ifU <:< T and returnsx as part of the match.Expr[Any] containing the pattern tree
Expr[Any] on which we are pattern matching
None if it did not match,Some(tup) if it matched wheretup contains `Expr[Ti]``