Jump to page: 1 2
Thread overview
[Issue 11993] New: [REG][2.065] typeof(this) in template constraints wrong qualifiers
Jan 25, 2014
Kenji Hara
Jan 25, 2014
Kenji Hara
[Issue 11993] [REG] typeof(this) in constraint of member function template should reflect method qualifier
Jan 25, 2014
Kenji Hara
Jan 25, 2014
Kenji Hara
Jan 26, 2014
Kenji Hara
January 25, 2014
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: -------
January 25, 2014
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: -------
January 25, 2014
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: -------
January 25, 2014
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: -------
January 25, 2014
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: -------
January 25, 2014
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: -------
January 25, 2014
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: -------
January 26, 2014
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: -------
January 28, 2014
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: -------
January 28, 2014
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: -------
« First   ‹ Prev
1 2