Re: with (auto p = new ...)

2014-09-26 Thread Freddy via Digitalmars-d-learn

On Tuesday, 23 September 2014 at 15:19:59 UTC, Andre wrote:

Hi,

I just wonder why with (auto p = new ...) is not working.
It would be some syntax sugar in this scenario:

with (auto p = new Panel())
{
parent = this;
text = bla;
with (auto b = new Button())
{
parent = p; // Here p is needed
text = bla2;
}
}

source\app.d(8): Error: expression expected, not 'auto'
source\app.d(8): Error: found 'p' when expecting ')'
source\app.d(8): Error: found '=' instead of statement
...

Kind regards
André

have you tried this?
---
import std.stdio;

struct myStruct{
int c=299792458;
}

void main(){
with(new myStruct()){
writeln(c);
}
}
---


Re: with (auto p = new ...)

2014-09-26 Thread Freddy via Digitalmars-d-learn

On Friday, 26 September 2014 at 19:59:56 UTC, Freddy wrote:

On Tuesday, 23 September 2014 at 15:19:59 UTC, Andre wrote:

Hi,

I just wonder why with (auto p = new ...) is not working.
It would be some syntax sugar in this scenario:

with (auto p = new Panel())
{
parent = this;
text = bla;
with (auto b = new Button())
{
parent = p; // Here p is needed
text = bla2;
}
}

source\app.d(8): Error: expression expected, not 'auto'
source\app.d(8): Error: found 'p' when expecting ')'
source\app.d(8): Error: found '=' instead of statement
...

Kind regards
André

have you tried this?
---
import std.stdio;

struct myStruct{
int c=299792458;
}

void main(){
with(new myStruct()){
writeln(c);
}
}
---

opps, sorry I misread the quesion.


Re: with (auto p = new ...)

2014-09-24 Thread kiran kumari via Digitalmars-d-learn

aOn Tuesday, 23 September 2014 at 15:19:59 UTC, Andre wrote:

Hi,

I just wonder why with (auto p = new ...) is not working.
It would be some syntax sugar in this scenario:

with (auto p = new Panel())
{
parent = this;
text = bla;
with (auto b = new Button())
{
parent = p; // Here p is needed
text = bla2;
}
}

source\app.d(8): Error: expression expected, not 'auto'
source\app.d(8): Error: found 'p' when expecting ')'
source\app.d(8): Error: found '=' instead of statement
...

Kind regards
see more example

http://techgurulab.com/course/java-quiz-online/


see more example
http://techgurulab.com/course/java-quiz-online/e example


Re: with (auto p = new ...)

2014-09-24 Thread Andre via Digitalmars-d-learn

Enhancement 13526 filed:
https://issues.dlang.org/show_bug.cgi?id=13526



Re: with (auto p = new ...)

2014-09-24 Thread ketmar via Digitalmars-d-learn
On Wed, 24 Sep 2014 14:39:25 +
Andre via Digitalmars-d-learn digitalmars-d-learn@puremagic.com wrote:

 Enhancement 13526 filed:
 https://issues.dlang.org/show_bug.cgi?id=13526
i wrote a quickhack-patch for this ER. as it's my first patch that
goes outside parser it needs to be reviewed by someone who knows
compiler internals.

ah, and we need grammar fixes for it too, but it's completely out of my
scope now.


signature.asc
Description: PGP signature


with (auto p = new ...)

2014-09-23 Thread Andre via Digitalmars-d-learn

Hi,

I just wonder why with (auto p = new ...) is not working.
It would be some syntax sugar in this scenario:

with (auto p = new Panel())
{
parent = this;
text = bla;
with (auto b = new Button())
{
parent = p; // Here p is needed
text = bla2;
}
}

source\app.d(8): Error: expression expected, not 'auto'
source\app.d(8): Error: found 'p' when expecting ')'
source\app.d(8): Error: found '=' instead of statement
...

Kind regards
André


Re: with (auto p = new ...)

2014-09-23 Thread Nordlöw

On Tuesday, 23 September 2014 at 15:19:59 UTC, Andre wrote:

I just wonder why with (auto p = new ...) is not working.
It would be some syntax sugar in this scenario:


I presume with is limited to expressions and not statements as 
the messages says.


However, you can use

if (auto p = new Panel())

instead as long as the new doesn't fail, that is you still have 
memory left :)


Re: with (auto p = new ...)

2014-09-23 Thread Graham Fawcett via Digitalmars-d-learn

How about:

auto b - new Button(); with (b) {

On Tuesday, 23 September 2014 at 15:19:59 UTC, Andre wrote:

Hi,

I just wonder why with (auto p = new ...) is not working.
It would be some syntax sugar in this scenario:

with (auto p = new Panel())
{
parent = this;
text = bla;
with (auto b = new Button())
{
parent = p; // Here p is needed
text = bla2;
}
}

source\app.d(8): Error: expression expected, not 'auto'
source\app.d(8): Error: found 'p' when expecting ')'
source\app.d(8): Error: found '=' instead of statement
...

Kind regards
André




Re: with (auto p = new ...)

2014-09-23 Thread Graham Fawcett via Digitalmars-d-learn

Sorry, I sent that last message before I intended to.

How about:

 auto b = new Button(); with (b) {
   ...
 }

'b' is explicitly outside of the scope of the 'with' block, which 
may not be what you intended. But you could use more braces to 
add an extra level of scope if that's an issue:


...
text = blah;
{
   auto b = new Button(); with (b) {
   ...
   }
}
// b is no longer in scope

Graham




On Tuesday, 23 September 2014 at 15:19:59 UTC, Andre wrote:

Hi,

I just wonder why with (auto p = new ...) is not working.
It would be some syntax sugar in this scenario:

with (auto p = new Panel())
{
parent = this;
text = bla;
with (auto b = new Button())
{
parent = p; // Here p is needed
text = bla2;
}
}

source\app.d(8): Error: expression expected, not 'auto'
source\app.d(8): Error: found 'p' when expecting ')'
source\app.d(8): Error: found '=' instead of statement
...

Kind regards
André




Re: with (auto p = new ...)

2014-09-23 Thread andre via Digitalmars-d-learn
Yes, that is also working. As far as I remember (only my tablet 
currently available) also this works:


Panel p;
with(p = new Panel ()) {}

Therefore it seems strange,the same does not work with auto.

Kind regards
André


On Tuesday, 23 September 2014 at 19:49:22 UTC, Graham Fawcett 
wrote:

Sorry, I sent that last message before I intended to.

How about:

 auto b = new Button(); with (b) {
   ...
 }

'b' is explicitly outside of the scope of the 'with' block, 
which may not be what you intended. But you could use more 
braces to add an extra level of scope if that's an issue:


...
text = blah;
{
   auto b = new Button(); with (b) {
   ...
   }
}
// b is no longer in scope

Graham




On Tuesday, 23 September 2014 at 15:19:59 UTC, Andre wrote:

Hi,

I just wonder why with (auto p = new ...) is not working.
It would be some syntax sugar in this scenario:

with (auto p = new Panel())
{
parent = this;
text = bla;
with (auto b = new Button())
{
parent = p; // Here p is needed
text = bla2;
}
}

source\app.d(8): Error: expression expected, not 'auto'
source\app.d(8): Error: found 'p' when expecting ')'
source\app.d(8): Error: found '=' instead of statement
...

Kind regards
André




Re: with (auto p = new ...)

2014-09-23 Thread Meta via Digitalmars-d-learn
I think this is just a language oversight. It's allowed in if 
statements, and people have made a good case for allowing it for 
switch statements. It just hasn't been implemented. I made an 
attempt one evening to implement it for switch statements,  but 
I'm not at all familiar with DMD, so I put it on the back burner 
for the time being.


Re: with (auto p = new ...)

2014-09-23 Thread Nordlöw

On Tuesday, 23 September 2014 at 20:16:29 UTC, andre wrote:

Therefore it seems strange,the same does not work with auto.


Yes, it seem logical to me allow this also in with and switch.