On Fri, Jan 9, 2009 at 4:29 AM, Nicolas <dran...@free.fr> wrote:
> Bill Baxter Wrote:
>> On Thu, Jan 8, 2009 at 5:36 PM, bearophile <bearophileh...@lycos.com> wrote:
>> > Brad Roberts:
>> >
>> >> Restating in the form of a question... When would you _ever_ want {...}
>> >> to not form a scope?
>> >
>> > Recently I have shown a possible syntax for express general unsafeties in 
>> > D code, for example:
>> >
>> > unsafe (bounds, overflow) {
>> >  ... // here there's no array bound checks, not integral overflow checks
>> > }
>> >
>> > I think this safe(...){...} and unsafe(...){...} don't need to form a 
>> > scope, like static if.
>> >
>> > --------------------------
>> >
>> > Bill Baxter:
>> >
>> >>I do think it would be nice if there was some kind of alternate non-scope 
>> >>block delimiter syntax in D. When you have static ifs mixed with regular 
>> >>ifs and versions it starts to be pretty difficult to see the flow of 
>> >>things. Something like
>> > static if (x) ::
>> >     some stuff
>> > ::<
>> >
>> > Probably I don't understand that syntax.
>>
>> It just means curly braces. I don't really care what syntax it is,
>> just something besides { and } for non-scope blocks.
>>
>> > A more full example may help me understand it. But if I understand it 
>> > correctly, then I don't like that syntax. The {} add a little of noise, 
>> > but help you know for sure inside where you are
>>
>> Do they really help you see where you are in something like this:
>>
>> void Do_something(T)(int i)
>> {
>>    if (i == 0) {
>>      static if (is(T==A)) {
>>            A.SomeAlias x;
>>      }
>>      else static if(is(T==B)) {
>>            B.SubType x;
>>      }
>>      else {
>>          T x;
>>       }
>>       x = ... whatever
>>    }
>>    else {
>>        int y = x;
>>    }
>> }
>>
>> To me it's hard to see those variable declarations as being anything
>> other than scoped to the blocks they're in.
>> So all I'm saying is if we could have some different delimiters for
>> non-scope blocks then it might be nice, and make it easier to see when
>> scopes are ending and when they are not.
>>
>> --bb
>
> I'd do:
>
> void Do_something(T)(int i)
> {
>    if (i == 0)
>    {
> static if (is(T==A))
> {
>        A.SomeAlias x;
> }
> else static if(is(T==B))
> {
>        B.SubType x;
> }
> else
> {
>        T x;
> }
>        x = ... whatever
>    }
>    else
>    {
>        int y = x;
>    }
> }
>
> it's parallel programming...

I'm having trouble resisting the urge to re-indent that code.  It
totally looks like someone got their tabs and spaces mixed up.

--bb

Reply via email to