Pattern for matching methods. The syntax for a pattern is:

  SourcePatterns = SourcePattern ["," SourcePatterns] .
  SourcePattern = [ "~" ] [ Class "." ] method [ "(" [ Parameter { ";" Parameter } ] ")" ] .
  Parameter = Class | "int" | "long" | "float" | "double" | "short" | "char" | "boolean" .
  Class = { package "." } class .

Glob pattern matching (*, ?) is allowed in all parts of the source pattern.
The "~" prefix negates the pattern.

Positive patterns are joined by an "or" operator: "A,B" matches anything
matched by "A" or "B". Negative patterns are joined by "and not": "~A,~B"
matches anything not matched by "A" and not matched by "B". "A,~B,~C,D"
matches anything matched by "A" or "D" and not matched by "B" and not
matched by "C".

A set of patterns containing negative patterns but no positive ones contains
an implicit positive "*" pattern: "~A,~B" is equivalent to "*,~A,~B".

Examples of method filters:
---------
  *

  Matches all methods in all classes.
---------
  canonical(CanonicalizerTool;LogicNode;LogicNode)

  Matches all methods named "canonical", with the first parameter of type
  "CanonicalizerTool", and the second and third parameters of type
  "LogicNode".
  The packages of the parameter types are irrelevant.
---------
  arraycopy(Object;;;;)

  Matches all methods named "arraycopy", with the first parameter
  of type "Object", and four more parameters of any type. The
  packages of the parameter types are irrelevant.
---------
  List.set

  Matches all methods named "set" in a class whose simple name is "List".
---------
  *List.set

  Matches all methods named "set" in a class whose simple name ends with "List".
---------
  org.graalvm.compiler.nodes.PhiNode.*

  Matches all methods in the class "org.graalvm.compiler.nodes.PhiNode".
---------
  org.graalvm.compiler.nodes.*.canonical

  Matches all methods named "canonical" in classes in the package
  "org.graalvm.compiler.nodes".
---------
  arraycopy,toString

  Matches all methods named "arraycopy" or "toString", meaning that ',' acts
  as an "or" operator.
---------
  java.util.*.*.,~java.util.*Array*.*
  java.util.*.*.,~*Array*.*

  These patterns are equivalent and match all methods in the package
  "java.util" except for classes that have "Array" in their name.
---------
  ~java.util.*.*

  Matches all methods in all classes in all packages except for anything in
  the "java.util" package.
