Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
January 01, 2013 [Issue 9249] New: Defining opCast disables Upcasting | ||||
---|---|---|---|---|
| ||||
http://d.puremagic.com/issues/show_bug.cgi?id=9249 Summary: Defining opCast disables Upcasting Product: D Version: D2 Platform: All OS/Version: All Status: NEW Severity: blocker Priority: P2 Component: DMD AssignedTo: nobody@puremagic.com ReportedBy: puneet@coverify.org --- Comment #0 from Puneet Goel <puneet@coverify.org> 2013-01-01 08:20:42 PST --- This becomes blocking now since opCast is required for implementing toImpl. test.d(13): Error: template instance opCast!(Foo) does not match template declaration opCast(T) if (is(T == string)) class Bar { // 1 public T opCast(T)() // 2 if(is(T == string)) // 3 { // 4 return "Bar"; // 5 } // 6 } // 7 // 8 class Foo: Bar { } // 9 // 10 void main() { // 11 Bar bar = new Foo(); // 12 Foo foo = cast(Foo) bar; // 13 } // 14 -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 11, 2013 [Issue 9249] Defining opCast disables Upcasting | ||||
---|---|---|---|---|
| ||||
Posted in reply to Puneet Goel | http://d.puremagic.com/issues/show_bug.cgi?id=9249 Andrej Mitrovic <andrej.mitrovich@gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |andrej.mitrovich@gmail.com --- Comment #1 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2013-01-10 20:40:57 PST --- What your sample is showing is downcasting, this is upcasting: class C1 { public T opCast(T)() if (is(T == string)) { return "C1"; } } class C2 : C1 { } void main() { C2 c2; C1 c1 = cast(C1)c2; } Both fail though. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 11, 2013 [Issue 9249] Defining opCast disables downcasting and explicit upcasting | ||||
---|---|---|---|---|
| ||||
Posted in reply to Puneet Goel | http://d.puremagic.com/issues/show_bug.cgi?id=9249 Puneet Goel <puneet@coverify.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|Defining opCast disables |Defining opCast disables |Upcasting |downcasting and explicit | |upcasting --- Comment #2 from Puneet Goel <puneet@coverify.org> 2013-01-10 20:54:39 PST --- Yup, my bad. I have updated the summary as per Andrej's comment. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
January 11, 2013 [Issue 9249] Defining opCast disables downcasting and explicit upcasting | ||||
---|---|---|---|---|
| ||||
Posted in reply to Puneet Goel | http://d.puremagic.com/issues/show_bug.cgi?id=9249 --- Comment #3 from Andrej Mitrovic <andrej.mitrovich@gmail.com> 2013-01-10 20:58:23 PST --- I've tried a version as old as 2.032 which has the same behavior. It's odd this wasn't picked up before. What I think should happen is opCast should be tried first, and if it can't be instantiated try to do the regular upcast/downcast. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- |
Copyright © 1999-2021 by the D Language Foundation