digitalmars.D.bugs - [Issue 2015] New: Virtual template methods are allowed
- d-bugmail puremagic.com (25/25) Apr 19 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2015
 - d-bugmail puremagic.com (10/10) Apr 19 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2015
 - d-bugmail puremagic.com (25/25) Apr 19 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2015
 - d-bugmail puremagic.com (10/10) Apr 19 2008 http://d.puremagic.com/issues/show_bug.cgi?id=2015
 
http://d.puremagic.com/issues/show_bug.cgi?id=2015
           Summary: Virtual template methods are allowed
           Product: D
           Version: 1.028
          Platform: All
        OS/Version: All
            Status: NEW
          Keywords: accepts-invalid
          Severity: normal
          Priority: P2
         Component: DMD
        AssignedTo: bugzilla digitalmars.com
        ReportedBy: dvdfrdmn users.sf.net
Compiler allows the following:
--
class X
{
    void f(T)() { }
}
void main() { (new X).f!(int)(); }
--
This is due (at least partially) to the use of toParent() instead of
toParent2() to in FuncDeclaration::semantic, FuncDeclaration::isVirtual, and
Dsymbol::isMember.
-- 
 Apr 19 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2015
kamm-removethis incasoftware.de changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |DUPLICATE
-------
Maybe add the implementation hint to bug 566 as well.
*** This bug has been marked as a duplicate of 566 ***
-- 
 Apr 19 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2015
dvdfrdmn users.sf.net changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|DUPLICATE                   |
            Summary|Virtual template methods are|Interface template methods
                   |allowed                     |are allowed
This actually came from a SourceForge bug report.  The original specifies
interface methods.  In this case, the code fails to link, but there should be a
proper error message.
----
interface TestInterface 
  { void tpl(T)(); }
class TestImplementation : TestInterface 
  { void tpl(T)() { } }
void main()
{
  /* TestImplementation t = new TestImplementation(); // works */
  TestInterface t = new TestImplementation(); // fails
  t.tpl!(int)();
}
---
-- 
 Apr 19 2008
http://d.puremagic.com/issues/show_bug.cgi?id=2015
dvdfrdmn users.sf.net changed:
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|REOPENED                    |RESOLVED
         Resolution|                            |DUPLICATE
Oops, didn't realize 566 was still open.
*** This bug has been marked as a duplicate of 566 ***
-- 
 Apr 19 2008








 
 
 
 d-bugmail puremagic.com 