Action A-639-03: Bug 29277 - 3.1.5.1 Evaluating Static and Dynamic Function Calls

The last remaining issue I am aware of in this section is how to handle functions with no explicit content expression, e.g. 

let $a := function() {} return $a()

I have changed the following text to ensure that every function has a content expression, even if none is explicitly provided in the query:

https://www.w3.org/XML/Group/qtspecs/specifications/xquery-31/html/xpath-31-diff.html#dt-content-expression

[5]   EnclosedExpr   ::=   "{"  Expr?  "}"
[Definition: An enclosed expression is an instance of the EnclosedExpr production, which allows an optional expression within curly braces.]  
[Definition: In an  enclosed expression, the optional expression enclosed in curly braces is called the content expression.] If the content expression is not provided explicitly, the content expression is ().

Thus, in the expression function() {}, the content expression is (), which is also the host language expression for the function's implementation in the XDM.  We no longer need to consider functions that have no function expression, they simply do not exist.  With that change, I believe the text in this section works for such functions:

http://www.w3.org/XML/Group/qtspecs/specifications/xquery-31/html/xpath-31-diff.html#id-eval-function-call
http://www.w3.org/XML/Group/qtspecs/specifications/xquery-31/html/xquery-31-diff.html#id-eval-function-call

Is there anything else that needs fixing here?  I'd like to ask people to please read this section, offer feedback early, and try to help me get this closed by next week's call.

Thanks!

Jonathan

Action A-639-03: 
Jonathan to send email saying he believes that Bug 29277 is now fixed, including functions with out an explicit content expression, and encourage people to read the text with an eye to adopting it next week.

Received on Wednesday, 13 April 2016 00:37:40 UTC