为什么此 OpenEdge 10.2B 代码有效,而不生成 运行 次错误?

Why does this OpenEdge 10.2B Code work, and not generate a run-time error?

这个简单的程序不应该产生 运行 次错误吗?当我运行它的时候,屏幕上显示的是4的值。

RUN pTest ( 2 + 2 ).

PROCEDURE pTest:

  DEF INPUT PARAM cData AS CHAR NO-UNDO.

  DISPLAY cData.

END.

因为 2 + 2 被转换为一个角色。

DEFINE PARAMETER 的文档说:

"In addition, the parameter types (INPUT, OUTPUT, INPUT-OUTPUT, RETURN, TABLE, TABLE-HANDLE, DATASET, DATASET-HANDLE, and BUFFER) specified in the DEFINE and RUN statements must agree. The corresponding data types and run-time values must also be compatible enough to allow the AVM to perform any necessary conversions."