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


--- Comment #0 from monarchdodra gmail.com 2014-01-25 08:32:44 PST ---
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



--- Comment #1 from monarchdodra gmail.com 2014-01-25 08:45:29 PST ---
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


--- Comment #2 from Kenji Hara <k.hara.pg gmail.com> 2014-01-25 09:04:13 PST ---
*** 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



--- Comment #3 from Kenji Hara <k.hara.pg gmail.com> 2014-01-25 09:07:01 PST ---
(In reply to comment #1)
 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 } When I opened #3103, I didn't know the bug, and to pass existing dmd test case (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


--- Comment #4 from Kenji Hara <k.hara.pg gmail.com> 2014-01-25 09:09:52 PST ---
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


--- Comment #5 from Kenji Hara <k.hara.pg gmail.com> 2014-01-25 09:11:43 PST ---
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



--- Comment #6 from github-bugzilla puremagic.com 2014-01-25 15:19:56 PST ---
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
Merge pull request #3151 from 9rnsr/fix11993

[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



--- Comment #7 from github-bugzilla puremagic.com 2014-01-27 16:24:05 PST ---
Commit pushed to 2.065 at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/68a24a29d06b8dc35de1ca8380318320c95793d4
Merge pull request #3151 from 9rnsr/fix11993

[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



--- Comment #8 from github-bugzilla puremagic.com 2014-01-27 17:47:37 PST ---
Commit pushed to 2.065 at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/d5d704a96109931bf0f0ff21a963456feab3e40a
Merge pull request #3151 from 9rnsr/fix11993

[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



--- Comment #9 from github-bugzilla puremagic.com 2014-01-27 19:24:47 PST ---
Commit pushed to 2.065 at https://github.com/D-Programming-Language/dmd

https://github.com/D-Programming-Language/dmd/commit/b2baac2aad179060487dead30d1a799f8ee64eaf
Merge pull request #3151 from 9rnsr/fix11993

[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