This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 22878 - [XSLT 3.0] Compatibility of overriding functions
Summary: [XSLT 3.0] Compatibility of overriding functions
Status: CLOSED FIXED
Alias: None
Product: XPath / XQuery / XSLT
Classification: Unclassified
Component: XSLT 3.0 (show other bugs)
Version: Working drafts
Hardware: PC All
: P2 normal
Target Milestone: ---
Assignee: Michael Kay
QA Contact: Mailing list for public feedback on specs from XSL and XML Query WGs
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-08-04 13:40 UTC by Michael Kay
Modified: 2014-10-24 13:59 UTC (History)
0 users

See Also:


Attachments

Description Michael Kay 2013-08-04 13:40:13 UTC
I think the rules for overriding functions in xsl:override should add the constraints:

(a) if the overridden function has identity-sensitive="no" then the overriding function must have identity-sensitive="no"

(b) if the overridden function has override-extension-functions="no" then the overriding function must have override-extension-functions="no".

Justification:

(a) the compiler may make optimizations based on the fact that a function was specified to not be identity-sensitive; for example, it may move function calls out of a loop. Overriding this attribute would invalidate such optimizations.

(b) when the compiler sees override-extension-functions="no" it should be able to generate a call to an extension function (ignoring the user-defined function) if one is available; since this may usefully involve generating inline code for the extension function, it should not have to reconsider this decision if the user-defined function is overridden in another package.
Comment 1 Michael Kay 2013-09-23 17:13:09 UTC
MK and Abel reviewed this proposal and agreed the change was necessary.
Comment 2 Michael Kay 2014-10-24 13:59:36 UTC
Note that part of this was reverted by a decision on bug #27125