Thread overview
[Issue 1030] New: ICE one-liner; struct in delegate
Mar 07, 2007
d-bugmail
Mar 08, 2007
d-bugmail
Mar 19, 2007
d-bugmail
Nov 08, 2007
d-bugmail
Nov 08, 2007
d-bugmail
Nov 09, 2007
d-bugmail
[Issue 1030] struct in delegate requires semicolon
Apr 18, 2009
d-bugmail
[Issue 1030] Delegate literal as initializer is confused with struct initializer
Apr 19, 2009
d-bugmail
Sep 15, 2009
Don
Jan 18, 2010
Don
March 07, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1030

           Summary: ICE one-liner; struct in delegate
           Product: D
           Version: unspecified
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: critical
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: default_357-line@yahoo.de


The following one-liner causes an ICE in line 0. Verified on GDC .21, .23 and DMD 1.007:

void main() { void delegate() test={ struct test2 {;} }; }

Greetings, downs


-- 

March 08, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1030





------- Comment #1 from thomas-dloop@kuehne.cn  2007-03-08 10:30 -------
Added to DStress as http://dstress.kuehne.cn/nocompile/s/struct_29_A.d http://dstress.kuehne.cn/run/s/struct_29_B.d


-- 

March 19, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1030


bugzilla@digitalmars.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED




------- Comment #2 from bugzilla@digitalmars.com  2007-03-19 17:41 -------
Fixed DMD 1.009


-- 

November 08, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1030


davidl@126.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|critical                    |regression
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |




------- Comment #3 from davidl@126.com  2007-11-07 21:59 -------
Seems 1.022 doesn't compile this, and 1.009 compiles this?


-- 

November 08, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1030





------- Comment #4 from default_357-line@yahoo.de  2007-11-08 04:40 -------
(In reply to comment #3)
> Seems 1.022 doesn't compile this, and 1.009 compiles this?
> 

Strange. Builds fine on my gdc .24/1.022 under linux/32-bit.


-- 

November 09, 2007
http://d.puremagic.com/issues/show_bug.cgi?id=1030





------- Comment #5 from davidl@126.com  2007-11-08 19:40 -------
it's http://dstress.kuehne.cn/run/s/struct_29_B.d which can't pass the parse stage.

seems dmd need a semicolon in the struct in the delegate.


-- 

April 18, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=1030


clugdbug@yahoo.com.au changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|ice-on-valid-code           |
            Summary|ICE one-liner; struct in    |struct in delegate requires
                   |delegate                    |semicolon




------- Comment #6 from clugdbug@yahoo.com.au  2009-04-18 17:33 -------
This is really a totally different bug to the original one, and much less severe. No longer an ICE -- it's a pretty tiny issue.

void main() {
        void delegate() test = {
                struct test2{}
        }
}
---
fog.d(4): expression expected, not 'struct'
fog.d(4): comma expected separating field initializers
fog.d(5): semicolon expected, not '}'
----


-- 

April 19, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=1030


smjg@iname.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|struct in delegate requires |Delegate literal as
                   |semicolon                   |initializer is confused with
                   |                            |struct initializer
            Version|unspecified                 |1.041




------- Comment #7 from smjg@iname.com  2009-04-19 07:29 -------
> fog.d(5): semicolon expected, not '}'

This last message is the one that's correct.  A declaration of a variable (which is what test is) always requires a closing semicolon.

What's actually happening is that it's trying to parse
{ struct test2{} }
as a struct initializer.  Nothing to do with the struct that's actually
declared inside.  See for yourself:

----------
C:\Users\Stewart\Documents\Programming\D\Tests\bugs>type bz1030a.d
void main() {
        void delegate() test = {
                struct test2{}
        };
}

C:\Users\Stewart\Documents\Programming\D\Tests\bugs>dmd bz1030a.d
bz1030a.d(4): expression expected, not 'struct'
bz1030a.d(4): comma expected separating field initializers

C:\Users\Stewart\Documents\Programming\D\Tests\bugs>type bz1030b.d
void main() {
        void delegate() test;
        test = {
                struct test2{}
        };
}

C:\Users\Stewart\Documents\Programming\D\Tests\bugs>dmd bz1030b.d

C:\Users\Stewart\Documents\Programming\D\Tests\bugs>
----------

Since AIUI there's no overlap between what's parseable as a struct init and what's parseable as a delegate literal, there should be little or no problem getting it to work.


-- 

September 15, 2009
http://d.puremagic.com/issues/show_bug.cgi?id=1030


Don <clugdbug@yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clugdbug@yahoo.com.au
           Severity|regression                  |normal


--- Comment #8 from Don <clugdbug@yahoo.com.au> 2009-09-15 06:36:54 PDT ---
This remaining bug is not a regression. It behaved exactly the same way in
DMD0.175.
Another of these annoying cases where we have two unrelated bugs in the same
report. It should not have been reopened.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
January 18, 2010
http://d.puremagic.com/issues/show_bug.cgi?id=1030


Don <clugdbug@yahoo.com.au> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |FIXED


--- Comment #9 from Don <clugdbug@yahoo.com.au> 2010-01-18 06:38:18 PST ---
The original bug was fixed in 1.009. The bug reported in the comments is the same as bug 1371; I'm therefore closing this one.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------