[Issue 17929] New: [Contract Programming] 23.3 In, Out and Inheritance

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Oct 23 04:45:21 UTC 2017


https://issues.dlang.org/show_bug.cgi?id=17929

          Issue ID: 17929
           Summary: [Contract Programming] 23.3 In, Out and Inheritance
           Product: D
           Version: D2
          Hardware: All
               URL: http://dlang.org/
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P3
         Component: dlang.org
          Assignee: nobody at puremagic.com
          Reporter: resmith5 at outlook.com

The section says 

"A function without an in contract means that any values of the function
parameters are allowed. This implies that if any function in an inheritance
hierarchy has no in contract, then in contracts on functions overriding it have
no useful effect."

But it appears that a compile error is generated when an overridden function
has an "in" and the function it is overriding does not, rather than the
contract having no effect - a compile error is encountered:

contracts.d(34): Error: function contracts.TestContractsDerived.someFunction
cannot have an in contract when overridden function
contracts.TestContractsBase.someFunction does not have an in contract
makefile:77: recipe for target 'contracts' failed

--


More information about the Digitalmars-d-bugs mailing list