www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 630] New: Obscure, unimplemented features related to in/out contracts

reply d-bugmail puremagic.com writes:
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.


-- 
Dec 02 2006
next sibling parent d-bugmail puremagic.com writes:
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





"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.


-- 
Dec 03 2006
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=630








 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. --
Dec 03 2006
prev sibling next sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=630


smjg iname.com changed:

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





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.


-- 
Dec 03 2006
prev sibling parent d-bugmail puremagic.com writes:
http://d.puremagic.com/issues/show_bug.cgi?id=630


bugzilla digitalmars.com changed:

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





Fixed DMD 0.178


-- 
Dec 26 2006