digitalmars.D.bugs - [Issue 10047] New: getOverloads cannot resolve UFCS
- d-bugmail puremagic.com (45/45) May 08 2013 http://d.puremagic.com/issues/show_bug.cgi?id=10047
- d-bugmail puremagic.com (26/26) May 08 2013 http://d.puremagic.com/issues/show_bug.cgi?id=10047
- d-bugmail puremagic.com (10/10) May 08 2013 http://d.puremagic.com/issues/show_bug.cgi?id=10047
- d-bugmail puremagic.com (12/12) May 13 2013 http://d.puremagic.com/issues/show_bug.cgi?id=10047
- d-bugmail puremagic.com (10/10) May 13 2013 http://d.puremagic.com/issues/show_bug.cgi?id=10047
http://d.puremagic.com/issues/show_bug.cgi?id=10047
Summary: getOverloads cannot resolve UFCS
Product: D
Version: D2
Platform: All
OS/Version: All
Status: NEW
Severity: regression
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: zan77137 nifty.com
This code doesn't work:
----------
//import std.typecons;
struct Typedef(T){
T a;
template opDispatch(string name) {
static if (__traits(getOverloads, a, name).length != 0) { }
}
}
struct A {}
void foo(Typedef!A a) {}
void main()
{
Typedef!A a;
a.foo();
}
-----------
$ dmd -run main
main.d(5): Error: function main.foo (Typedef!(A) a) is not callable using
argume
nt types (A)
main.d(5): Error: a.foo cannot be resolved
main.d(14): Error: template instance
main.Typedef!(A).Typedef.opDispatch!("foo")
error instantiating
main.d(14): Error: function expected before (), not a.(__error) of type _error_
-----------
git bisect result:
5d7ccff11d5bc91824bda7b66edca6318742f80b is the first bad commit
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 08 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10047
Kenji Hara <k.hara.pg gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |rejects-valid
Reduced test case.
struct Typedef(T)
{
template opDispatch(string name)
{
static assert(0);
}
}
struct A {}
void foo(Typedef!A a) { assert(0); }
void main()
{
Typedef!A a;
a.foo();
}
For the later UFCS name lookup, the errors in opDispatch instantiation should
be gagged.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 08 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10047
Kenji Hara <k.hara.pg gmail.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |pull
https://github.com/D-Programming-Language/dmd/pull/1981
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 08 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10047 Commits pushed to master at https://github.com/D-Programming-Language/dmd https://github.com/D-Programming-Language/dmd/commit/e61d989b600588269a91d0aaaff557890df7233d fix Issue 10047 - opDispatch instantiation failure should be gagged for UFCS https://github.com/D-Programming-Language/dmd/commit/6daf3cc2a595e053d0bede7d0cc264cc2eb704ce [REG2.063a] Issue 10047 - opDispatch instantiation failure should be gagged for UFCS -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
May 13 2013
http://d.puremagic.com/issues/show_bug.cgi?id=10047
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
CC| |bugzilla digitalmars.com
Resolution| |FIXED
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
May 13 2013









d-bugmail puremagic.com 