On 05.01.2017 01:51, Andrei Alexandrescu wrote:
On 12/31/16 9:43 AM, Timon Gehr wrote:
On an unrelated note: I'm still not a fan of the with(import) syntax as
it morally promotes a lack of turtles (even if not technically so).

Could you please provide more detail? Thanks! -- Andrei

The declaration

with(import foo){ ... }

looks like an orthogonal combination of some import expression and the usual

with(foo){ ... }

statement. (This is true for all other statements and expressions with similar syntax.)

However, this is not in fact true here, the two constructs have different scoping rules.

Hence I think that the 'with(import foo){ ... }'-syntax would be better split into two orthogonal features:

1. allow 'import foo' as an expression that evaluates to the corresponding module symbol.

2. add 'static with' that is basically like 'with' but is a declaration and has different scoping rules.


I.e., my objection is that 'with' should not become 'static' just because it is applied to an import expression.

Reply via email to