Incorrect default priority for patterns with predicates
A pattern such as
*[x = 2] is being allocated a default priority of 0, rather than the correct value of 0.5. More specifically, the priority is that of the "base pattern" (here
"*") plus 0.5.
(The incorrect code is attempting to implement a rule in the July 2012 draft of XSLT 3.0: "If the pattern (in its entirety) is a TypePattern with a non-empty PredicateList, then the priority is that of the ItemType in the absence of the PredicateList, as given above, plus 0.5. "), but it is being applied too widely. And in any case, this rule no longer exists in the Dec 2013 draft.)