Thread overview
[Issue 630] New: Obscure, unimplemented features related to in/out contracts
Dec 03, 2006
d-bugmail
Dec 03, 2006
d-bugmail
Dec 03, 2006
d-bugmail
Dec 03, 2006
d-bugmail
Dec 27, 2006
d-bugmail
December 03, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=630

           Summary: Obscure, unimplemented features related to in/out
                    contracts
           Product: D
           Version: 0.175
          Platform: All
               URL: http://www.digitalmars/com/d/dbc.html
        OS/Version: All
            Status: NEW
          Keywords: spec
          Severity: major
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla@digitalmars.com
        ReportedBy: smjg@iname.com
OtherBugsDependingO 511
             nThis:


Issue 302 talks of a long-unimplemented part of D: inheritance of in/out contracts.  This is about some lesser-known DBC features that are in the D spec.

"The compiler can be adjusted to verify that every in and inout parameter is referenced in the in { }, and every out and inout parameter is referenced in the out { }."

Admittedly, this seems pointless (leading to convoluted code just to use all the variables), but it's there.

"The in-out statement can also be used inside a function, for example, it can be used to check the results of a loop:"

There are workarounds for this, but that doesn't excuse anything.

I vaguely recall Walter mentioning an intention to remove these from the spec, but nothing's happened about this either way.


-- 

December 03, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=630


deewiant@gmail.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                URL|http://www.digitalmars/com/d|http://www.digitalmars.com/d
                   |/dbc.html                   |/dbc.html




------- Comment #1 from deewiant@gmail.com  2006-12-03 03:03 -------
"The in-out statement can also be used inside a function, for example, it can be used to check the results of a loop:"

It is noted in the spec that "[t]his is not implemented at this time." The parameter-checking paragraph could use such a comment as well.


-- 

December 03, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=630





------- Comment #2 from larsivar@igesund.net  2006-12-03 03:47 -------
(In reply to comment #1)

> It is noted in the spec that "[t]his is not implemented at this time." The parameter-checking paragraph could use such a comment as well.
> 

The spec has for a long time been the documentation for the compiler, which is the wrong way to do it. The spec is a spec, and whether there exists a compiler that implements it or not, should not be part of it. DMD's own documentation, should mention it though.


-- 

December 03, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=630


smjg@iname.com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
               Flag|                            |d1.0blocker?




------- Comment #3 from smjg@iname.com  2006-12-03 06:08 -------
Whether DMD's documentation mentions it doesn't alter the fact that the fact that DMD doesn't implement it is a bug.  Because DMD is supposed to be a D compiler, not a some-subset-of-D compiler.


-- 

December 27, 2006
http://d.puremagic.com/issues/show_bug.cgi?id=630


bugzilla@digitalmars.com changed:

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




------- Comment #4 from bugzilla@digitalmars.com  2006-12-27 01:59 -------
Fixed DMD 0.178


--