Summary: [regression 1.071->1.072] put contract for class
                    member functions are broken
           Product: D
           Version: D1
          Platform: All
        OS/Version: Linux
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD

--- Comment #0 from Leandro Lucarella <> 2011-12-16 09:18:04 
PST ---
When upgrading from 1.071 to 1.072 I had problems with out contracts for class
member functions. Here is a minimal testcase:


module bug;

extern (C) int printf(char*, ...);

class Sad
    // only happens with class member functions, struct member functions work
    // well and static class member function works well also
    void func ( int n )
        printf("out: %d\n", n);
        assert ( n == 23, "DMD IS SO BROKEN");
        printf("body: %d\n", n);
        assert ( n == 23, "Expected to work");
        return ;

void main(char[][] args)
    auto c = new Sad;



I tried to do a git bisect to come up with the exact commit that broke this but
it was impossible because there are commits that doesn't compile. It would be
nice if you could only commit changes that compiles to allow bisecting the code
to find exactly where regressions were introduced.

(this was tested in both 32 and 64 bit version in Linux)

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to