Thread overview
[Issue 3740] New: build tango error
Jan 25, 2010
changlon
[Issue 3740] Regression: class with fwd reference of a nested struct breaks abstract
Jan 25, 2010
Don
Jan 27, 2010
Walter Bright
Jan 27, 2010
Leandro Lucarella
Jan 31, 2010
Walter Bright
January 25, 2010
http://d.puremagic.com/issues/show_bug.cgi?id=3740

           Summary: build tango error
           Product: D
           Version: unspecified
          Platform: x86
        OS/Version: Windows
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody@puremagic.com
        ReportedBy: changlon@gmail.com


--- Comment #0 from changlon <changlon@gmail.com> 2010-01-25 01:44:19 PST ---
build tango error since svn r342 to r354 , test on (window 32 & ububtu i386 9.4
& freebsd i386  7.2)


i can't reduced this issue.

---------------------------

dmd -release -O -I.. -I../tango/core -I../tango/core/vendor -c ../tango/io/selector/SelectSelector.d -ofio-selector-SelectSelector.obj ..\tango\io\selector\SelectSelector.d(515): Error: class tango.io.selector.SelectSelector.SelectSelectionSet interface function ISelectionSet.length isn't implemented ..\tango\io\selector\SelectSelector.d(515): Error: class tango.io.selector.SelectSelector.SelectSelectionSet interface function ISelectionSet.opApply isn't implemented


dmd -release -O -I.. -I../tango/core -I../tango/core/vendor -c
../tango/net/device/Berkeley.d -ofnet-device-Berkeley.obj
..\tango\net\device\Berkeley.d(596): Error: cannot create instance of abstract
class IPv4Address
..\tango\net\device\Berkeley.d(596): Error: function toString is abstract
..\tango\net\device\Berkeley.d(596): Error: function name is abstract
..\tango\net\device\Berkeley.d(596): Error: function nameLen is abstract
..\tango\net\device\Berkeley.d(596): Error: function addressFamily is abstract


dmd -release -O -I.. -I../tango/core -I../tango/core/vendor -c
../tango/net/device/Multicast.d -ofnet-device-Multicast.obj
..\tango\net\device\Multicast.d(99): Error: cannot create instance of abstract
class InternetAddress
..\tango\net\device\Multicast.d(99): Error: function toString is abstract
..\tango\net\device\Multicast.d(99): Error: function name is abstract
..\tango\net\device\Multicast.d(99): Error: function nameLen is abstract
..\tango\net\device\Multicast.d(99): Error: function addressFamily is abstract


dmd -release -O -I.. -I../tango/core -I../tango/core/vendor -c
../tango/net/device/Socket.d -ofnet-device-Socket.obj
..\tango\net\device\Socket.d(138): Error: cannot create instance of abstract
class IPv4Address
..\tango\net\device\Socket.d(138): Error: function toString is abstract
..\tango\net\device\Socket.d(138): Error: function name is abstract
..\tango\net\device\Socket.d(138): Error: function nameLen is abstract
..\tango\net\device\Socket.d(138): Error: function addressFamily is abstract
..\tango\net\device\Socket.d(535): Error: cannot create instance of abstract
class IPv4Address
..\tango\net\device\Socket.d(535): Error: function toString is abstract
..\tango\net\device\Socket.d(535): Error: function name is abstract
..\tango\net\device\Socket.d(535): Error: function nameLen is abstract
..\tango\net\device\Socket.d(535): Error: function addressFamily is abstract


dmd -release -O -I.. -I../tango/core -I../tango/core/vendor -c
../tango/net/device/SSLSocket.d -ofnet-device-SSLSocket.obj
..\tango\net\device\SSLSocket.d(360): Error: cannot create instance of abstract
class IPv4Address
..\tango\net\device\SSLSocket.d(360): Error: function toString is abstract
..\tango\net\device\SSLSocket.d(360): Error: function name is abstract
..\tango\net\device\SSLSocket.d(360): Error: function nameLen is abstract
..\tango\net\device\SSLSocket.d(360): Error: function addressFamily is abstract


dmd -release -O -I.. -I../tango/core -I../tango/core/vendor -c
../tango/net/ftp/FtpClient.d -ofnet-ftp-FtpClient.obj
..\tango\net\ftp\FtpClient.d(481): Error: cannot create instance of abstract
class IPv4Address
..\tango\net\ftp\FtpClient.d(481): Error: function toString is abstract
..\tango\net\ftp\FtpClient.d(481): Error: function name is abstract
..\tango\net\ftp\FtpClient.d(481): Error: function nameLen is abstract
..\tango\net\ftp\FtpClient.d(481): Error: function addressFamily is abstract
..\tango\net\ftp\FtpClient.d(489): Error: cannot create instance of abstract
class IPv4Address
..\tango\net\ftp\FtpClient.d(489): Error: function toString is abstract
..\tango\net\ftp\FtpClient.d(489): Error: function name is abstract
..\tango\net\ftp\FtpClient.d(489): Error: function nameLen is abstract
..\tango\net\ftp\FtpClient.d(489): Error: function addressFamily is abstract
..\tango\net\ftp\FtpClient.d(491): Error: cannot create instance of abstract
class IPv4Address
..\tango\net\ftp\FtpClient.d(491): Error: function toString is abstract
..\tango\net\ftp\FtpClient.d(491): Error: function name is abstract
..\tango\net\ftp\FtpClient.d(491): Error: function nameLen is abstract
..\tango\net\ftp\FtpClient.d(491): Error: function addressFamily is abstract


dmd -release -O -I.. -I../tango/core -I../tango/core/vendor -c
../tango/net/http/HttpClient.d -ofnet-http-HttpClient.obj
..\tango\net\http\HttpClient.d(150): Error: cannot create instance of abstract
class Uri
..\tango\net\http\HttpClient.d(150): Error: function toString is abstract
..\tango\net\http\HttpClient.d(150): Error: function defaultPort is abstract
..\tango\net\http\HttpClient.d(150): Error: function scheme is abstract
..\tango\net\http\HttpClient.d(150): Error: function host is abstract
..\tango\net\http\HttpClient.d(150): Error: function port is abstract
..\tango\net\http\HttpClient.d(150): Error: function validPort is abstract
..\tango\net\http\HttpClient.d(150): Error: function userinfo is abstract
..\tango\net\http\HttpClient.d(150): Error: function path is abstract
..\tango\net\http\HttpClient.d(150): Error: function query is abstract
..\tango\net\http\HttpClient.d(150): Error: function fragment is abstract
..\tango\net\http\HttpClient.d(150): Error: function isGeneric is abstract
..\tango\net\http\HttpClient.d(180): Error: cannot create instance of abstract
class InternetAddress
..\tango\net\http\HttpClient.d(180): Error: function toString is abstract
..\tango\net\http\HttpClient.d(180): Error: function name is abstract
..\tango\net\http\HttpClient.d(180): Error: function nameLen is abstract
..\tango\net\http\HttpClient.d(180): Error: function addressFamily is abstract
..\tango\net\http\HttpClient.d(491): Error: function
tango.net.http.HttpParams.HttpParams.produce (uint delegate(void[]),char[])
does not match parameter types (int delegate(void[] p))
..\tango\net\http\HttpClient.d(491): Error: cannot implicitly convert
expression (__dgliteral1) of type int delegate(void[] p) to uint
delegate(void[])
..\tango\net\http\HttpClient.d(509): Error: cannot implicitly convert
expression (__dgliteral2) of type int delegate(OutputBuffer o) to void
delegate(OutputBuffer)


dmd -release -O -I.. -I../tango/core -I../tango/core/vendor -c
../tango/net/http/HttpGet.d -ofnet-http-HttpGet.obj
..\tango\net\http\HttpGet.d(48): Error: cannot create instance of abstract
class Uri
..\tango\net\http\HttpGet.d(48): Error: function toString is abstract
..\tango\net\http\HttpGet.d(48): Error: function defaultPort is abstract
..\tango\net\http\HttpGet.d(48): Error: function scheme is abstract
..\tango\net\http\HttpGet.d(48): Error: function host is abstract
..\tango\net\http\HttpGet.d(48): Error: function port is abstract
..\tango\net\http\HttpGet.d(48): Error: function validPort is abstract
..\tango\net\http\HttpGet.d(48): Error: function userinfo is abstract
..\tango\net\http\HttpGet.d(48): Error: function path is abstract
..\tango\net\http\HttpGet.d(48): Error: function query is abstract
..\tango\net\http\HttpGet.d(48): Error: function fragment is abstract
..\tango\net\http\HttpGet.d(48): Error: function isGeneric is abstract


dmd -release -O -I.. -I../tango/core -I../tango/core/vendor -c
../tango/net/http/HttpPost.d -ofnet-http-HttpPost.obj
..\tango\net\http\HttpPost.d(49): Error: cannot create instance of abstract
class Uri
..\tango\net\http\HttpPost.d(49): Error: function toString is abstract
..\tango\net\http\HttpPost.d(49): Error: function defaultPort is abstract
..\tango\net\http\HttpPost.d(49): Error: function scheme is abstract
..\tango\net\http\HttpPost.d(49): Error: function host is abstract
..\tango\net\http\HttpPost.d(49): Error: function port is abstract
..\tango\net\http\HttpPost.d(49): Error: function validPort is abstract
..\tango\net\http\HttpPost.d(49): Error: function userinfo is abstract
..\tango\net\http\HttpPost.d(49): Error: function path is abstract
..\tango\net\http\HttpPost.d(49): Error: function query is abstract
..\tango\net\http\HttpPost.d(49): Error: function fragment is abstract
..\tango\net\http\HttpPost.d(49): Error: function isGeneric is abstract
..\tango\net\http\HttpPost.d(117): Error: function
tango.net.http.HttpPost.HttpPost.write () does not match parameter types (int
delegate(OutputBuffer b))
..\tango\net\http\HttpPost.d(117): Error: cannot implicitly convert expression
(__dgliteral1) of type int delegate(OutputBuffer b) to void[]
..\tango\net\http\HttpPost.d(117): Error: expected 2 function arguments, not 1


dmd -release -O -I.. -I../tango/core -I../tango/core/vendor -c
../tango/net/util/MemCache.d -ofnet-util-MemCache.obj
..\tango\net\util\MemCache.d(409): Error: cannot create instance of abstract
class InternetAddress
..\tango\net\util\MemCache.d(409): Error: function toString is abstract
..\tango\net\util\MemCache.d(409): Error: function name is abstract
..\tango\net\util\MemCache.d(409): Error: function nameLen is abstract
..\tango\net\util\MemCache.d(409): Error: function addressFamily is abstract

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


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

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |clugdbug@yahoo.com.au
            Summary|build tango error           |Regression: class with fwd
                   |                            |reference of a nested
                   |                            |struct breaks abstract


--- Comment #1 from Don <clugdbug@yahoo.com.au> 2010-01-25 03:18:16 PST ---
Reduced test case. If a class contains a forward reference of a nested struct, it stays abstract.
-----------------

abstract class Address {
    abstract int nameLen();
}

class Class3740 : Address {
    FwdStruct z;

    struct FwdStruct  {  }

    int nameLen()    { return 0; }
}

void cantdo () {
        Class3740 xxx = new Class3740;
}

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


Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |bugzilla@digitalmars.com


--- Comment #2 from Walter Bright <bugzilla@digitalmars.com> 2010-01-27 11:37:08 PST ---
Changeset 356

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


Leandro Lucarella <llucax@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |llucax@gmail.com


--- Comment #3 from Leandro Lucarella <llucax@gmail.com> 2010-01-27 13:51:49 PST ---
Thanks for the fix, but, speaking about the patch, is it a good idea to shadow an object attribute with a local variable like this?

Index: /trunk/src/func.c ===================================================================
--- /trunk/src/func.c (revision 354)
+++ /trunk/src/func.c (revision 356)
@@ -131,8 +131,19 @@
     return;
     }
+
+    parent = sc->parent;
+    Dsymbol *parent = toParent();
+


I think it could be a little error prone, maybe it's a good idea to change the local variable name :)

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


Walter Bright <bugzilla@digitalmars.com> changed:

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


--- Comment #4 from Walter Bright <bugzilla@digitalmars.com> 2010-01-30 22:43:23 PST ---
fixed dmd 1.056 and 2.040

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