#1174: Disallow .local declarations in long-style call statement
--------------------+-------------------------------------------------------
Reporter: kjs | Owner:
Type: RFC | Status: new
Priority: normal | Milestone:
Component: none | Version:
Severity: medium | Keywords:
Lang: | Patch:
Platform: |
--------------------+-------------------------------------------------------
the current implementation for PIR allows one to declare .locals in a
.begin_call/.end_call sequence, after the .call directive, like so:
.begin_call
.arg 1
.arg 2
.call $P0
.local int a, b, c
.result a
.result b
.result c
.end_call
(this is short for (a, b, c) = $P0(1, 2) )
IMHO, the whole sequence of directives from .begin_call to .end_call
should
be considered 1 statement; having .local declarations intermixed with
.result directives is a bit strange, because the .local directive itself
is
not part of the sequence of directives to make the call.
Furthermore, the locals stay in scope after the .end_call directive.
I propose to disallow this language 'feature', and force the programmer to
write the above example as follows:
.local int a, b, c
.begin_call
.arg 1
.arg 2
.call $P0
.result a
.result b
.result c
.end_call
comments welcome.
kjs
--
Ticket URL: <https://trac.parrot.org/parrot/ticket/1174>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets