matches

fun matches(cls: String, method: String, want: List<String>?, ph: Patch.Phase?): Boolean

Null want / ph is unfiltered. Woven signatures are the truth — Signatures.matches is what selected them — and a patch that wove several overloads answers to any one of them, being atomic. A patch that wove NONE — pending, or resolved to an ambiguous match Patch refused — has no signature to answer with, so its own filter stands in on the left, which is why * matches there in both directions. Empty and null are the same case here: both mean "nothing woven to compare".