Skip to content

Fix FUNC handling in SIGNATURE. #47

@python-processing-unit

Description

@python-processing-unit

According to the specification section 5:

Functions are defined using the FUNC keyword with explicit parameter and return types. The canonical positional-only form is FUNC R: name(T1: arg1, T2: arg2, ..., TN: argN){ block }, where each Tk and R is INT, FLT, STR, TNS, or FUNC. Parameters MAY also declare a call-time default value using Tk: arg = expr. A parameter without a default is positional; a parameter with a default is keyword-capable. Positional parameters MUST appear before any parameters with defaults. Defining a function binds name to a callable body with the specified typed formal parameters. Function names MUST NOT conflict with the names of built-in operators or functions.

However, according to the definition for the SIGNATURE operator in specification section 12:

  • SIGNATURE(SYMBOL: sym):STR ; returns a textual signature for the identifier sym. If sym denotes a user-defined function (FUNC) the result is formatted in the canonical form used in this specification, for example FUNC name(T1: arg1, T2: arg2 = default):R. For other bound symbols the result is TYPE: symbol (for example INT: x). The argument MUST be a plain identifier.

The SIGNATURE operator MUST handle FUNC according to the canonical form defined in specification section 5.

Update both the implementation and the specification.

Metadata

Metadata

Labels

bugSomething isn't workingdocumentationImprovements or additions to documentation

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions