| Summary: | No validation message using as number inline for an OUT modified parameter | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | Kathy Carroll <carrollk> |
| Component: | EDT | Assignee: | Project Inbox <edt.compiler-inbox> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | normal | ||
| Priority: | P3 | CC: | pharmon |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | |||
For some reason, some old logic in FunctionArgumentValidator was short circuiting the valiation checks if the parm and argument were both reference types. I have removed this old (bogus) logic and now the validation behaves correctly. verfied with 20111114_2101 and closed |
Given this Only expressions that are valid on the left hand side of an assignment statement are valid to be passed to an INOUT or OUT function parameter. Some of the things that RBD allows to be passed to an INOUT parm, for instance are: AS expressions, New expressions, unary expressions (such as -myInt). Valid expressions are things like simple name, qualified name, array access and dynamic access. I would expect a validation error for this code: function testFunctionParameterOutWithUpdateNum005() {@Test} details = "Cannot instantiate the type ENumber"; localDec decimal(5,2) = 333.33; updated decimal(5,2) = 543.21; updateOutParameterNum005(localDec as number); LogResult.assertTrue1( localDec == updated); end function updateOutParameterNum005(localLen number out) localLen = 543.21; end