[fpc-pascal] a proposal about "with" syntax
Flávio Etrusco
flavio.etrusco at gmail.com
Sun Mar 17 15:15:22 CET 2013
> On 17/03/2013 12:54, Marco van de Voort wrote:
>>
>> Since it is a pseudo variable declaration, I would assume VAR syntax and
>> just use ":" ?
This is indeed better.
On Sun, Mar 17, 2013 at 10:51 AM, Martin <lazarus at mfriebe.de> wrote:
> Or maybe it should require a "variable" declaration (or otherwise declared
> identifier with fixed type).
>
> Otherwise it goes into an undesirable direction:
>
> Function Foo;
> begin
> with a: SomeInteger do Work(a);
> with a: SomeBoolean do Work(a);
> end;
>
> a is first integer, then boolean within the same scope. *Very* confusing.
This is what already happens between the members of "aliased"
variables, and that's IMO reason for the proposal.
So I don't see a problem, on the contrary, it's progress since it
needs a more direct/clearer user "error" to be bitten by it.
> And very close to the next step (which of course can be rejected by the
> compiler)
It would be better.
> Function Foo;
> begin
> with a: SomeInteger do begin
> Work(a);
> with a: SomeBoolean do Work(a); // masking a
> end;
> end;
>
> But if the inner a was Integer too, then maybe it should work? Unless it
> gets a similar special status like a loop variable?
I don't think so.
> -------------------
> IIRC in other threads on this topic, some people explicitly stated they
> wanted this feature so the would not need to declare "a" first (I may
> remember this wrong).
> IMHO starting with the first loop hole of allowing an undeclared identifier
> to be used, is just opening the door to more and more weakening of the
> language requirement.
> Besides, it does not hurt, if "a" needs to be declared.
My POV is "with" already implies an undeclared variable.
Regards,
Flávio
More information about the fpc-pascal
mailing list