www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 11993] New: [REG][2.065] typeof(this) in template constraints wrong qualifiers

reply d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=11993

           Summary: [REG][2.065] typeof(this) in template constraints
                    wrong qualifiers
           Product: D
           Version: D2
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: regression
          Priority: P2
         Component: DMD
        AssignedTo: nobody puremagic.com
        ReportedBy: monarchdodra gmail.com



This *just* broke on master:

//----
bool fun(T)()
{
    pragma(msg, T.stringof);
    return true;
}

struct S
{
    void foo()() const
    if (fun!(typeof(this)))
    {}
}

void main()
{
    S s;
    s.foo();
}
//----
master: "S"
2.064.2: "const(S)"


Here, "foo" is const, so in the template constraint, "this" should be
"const(S)". Yet when querying "fun", it prints "S".

This regression is responsible for the failures here:
https://d.puremagic.com/test-results/pull-history.ghtml?projectid=1&repoid=3&pullid=1049

My guess is there is a DMD pull around between 2014-01-23T21:00 and
2014-01-24T21:00 that broke it.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 25 2014
next sibling parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=11993




https://github.com/D-Programming-Language/dmd/pull/3103

Might be responsible for this.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 25 2014
prev sibling next sibling parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=11993


Kenji Hara <k.hara.pg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |k.hara.pg gmail.com



*** Issue 11994 has been marked as a duplicate of this issue. ***

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 25 2014
prev sibling next sibling parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=11993





 https://github.com/D-Programming-Language/dmd/pull/3103
 
 Might be responsible for this.
In 2.064 and earlier, there was nasty bug. bool printType(T, size_t ln = __LINE__)() { pragma(msg, T.stringof); return true; } struct S { void foo()() const if (printType!(typeof(this))) {} const void bar()() if (printType!(typeof(this))) {} } void main() { S s; s.foo(); // const(S) s.bar(); // S } (test/runnable/opover2.d test15()), I was wrongly changed the behavior. -- Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Jan 25 2014
prev sibling next sibling parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=11993


Kenji Hara <k.hara.pg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |wrong-code
            Summary|[REG][2.065] typeof(this)   |[REG] typeof(this) in
                   |in template constraints     |constraint of member
                   |wrong qualifiers            |function template should
                   |                            |reflect method qualifier



I change the summary to express the bug more precise that was in 2.064 and
earlier.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 25 2014
prev sibling next sibling parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=11993


Kenji Hara <k.hara.pg gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull



https://github.com/D-Programming-Language/dmd/pull/3151

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 25 2014
prev sibling next sibling parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=11993




Commits pushed to master at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/798c0c0178dec61c66292b6f7c904b19c396fee2
fix Issue 11993 - typeof(this) in constraint of member function template should
reflect method qualifier

https://github.com/D-Programming-Language/dmd/commit/5c6a973c7182d5248697de5e97550e4e3cfb8065


[REG] Issue 11993 - typeof(this) in constraint of member function template
should reflect method qualifier

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 25 2014
prev sibling next sibling parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=11993


Kenji Hara <k.hara.pg gmail.com> changed:

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


-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 25 2014
prev sibling next sibling parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=11993




Commit pushed to 2.065 at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/68a24a29d06b8dc35de1ca8380318320c95793d4


[REG] Issue 11993 - typeof(this) in constraint of member function template
should reflect method qualifier

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 27 2014
prev sibling next sibling parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=11993




Commit pushed to 2.065 at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/d5d704a96109931bf0f0ff21a963456feab3e40a


[REG] Issue 11993 - typeof(this) in constraint of member function template
should reflect method qualifier

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Jan 27 2014
prev sibling parent d-bugmail puremagic.com writes:
https://d.puremagic.com/issues/show_bug.cgi?id=11993




Commit pushed to 2.065 at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/b2baac2aad179060487dead30d1a799f8ee64eaf


[REG] Issue 11993 - typeof(this) in constraint of member function template
should reflect method qualifier

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