digitalmars.D.bugs - [Issue 5145] New: override error with forward ref of superclass
- d-bugmail puremagic.com (55/55) Oct 31 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5145
- d-bugmail puremagic.com (8/8) Oct 31 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5145
- d-bugmail puremagic.com (36/36) Nov 01 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5145
- d-bugmail puremagic.com (7/7) Nov 01 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5145
- d-bugmail puremagic.com (10/10) Nov 22 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5145
- d-bugmail puremagic.com (11/13) Dec 05 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5145
- d-bugmail puremagic.com (11/11) Dec 05 2010 http://d.puremagic.com/issues/show_bug.cgi?id=5145
http://d.puremagic.com/issues/show_bug.cgi?id=5145
Summary: override error with forward ref of superclass
Product: D
Version: D1
Platform: x86
OS/Version: Mac OS X
Status: NEW
Severity: normal
Priority: P2
Component: DMD
AssignedTo: nobody puremagic.com
ReportedBy: fawzi gmx.ch
The following code fails with
{{{
t.d(24): Error: variable t.B.sync.this override cannot be applied to variable
t.d(25): Error: function t.B.sync.__require override only applies to class
member functions
}}}
then class B is declared after class A
{{{
module t;
interface I1{
void bla();
}
interface I2
{
I1 sync ();
}
class A : B
{
final override I1 sync()
in { assert( valid ); }
body
{
return null;
}
}
class B : I2
{
override I1 sync()
in { assert( valid ); }
body
{
return null;
}
final bool valid()
{
return true;
}
}
}}}
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 31 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5145
Fawzi Mohamed <fawzi gmx.ch> changed:
What |Removed |Added
----------------------------------------------------------------------------
Severity|normal |regression
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Oct 31 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5145
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
Keywords| |patch, rejects-valid
CC| |clugdbug yahoo.com.au
Version|D1 |D1 & D2
Summary|override error with forward |Regression(2.050, 1.065)
|ref of superclass |override error with forward
| |ref of superclass
OS/Version|Mac OS X |All
Applies to both D1 and D2.
This was caused by svn683, which fixed bug 3602 "ICE(tocsym.c) compiling a
class, if its super class has preconditions"
And the problem is that it's using the scope from the parent function, which
isn't quite right: some of the attributes should be dropped. I don't know if
anything other than STCoverride can cause problems.
func.c, FuncDeclaration::mergeFrequire, line 1688.
FuncDeclaration *fdv = (FuncDeclaration *)foverrides.data[i];
/* The semantic pass on the contracts of the overridden functions must
* be completed before code generation occurs (bug 3602).
*/
if (fdv->fdrequire && fdv->fdrequire->semanticRun != PASSsemantic3done)
{
assert(fdv->scope);
+ StorageClass oldstc = fdv->scope->stc;
+ fdv->scope->stc &= ~ STCoverride;
fdv->semantic3(fdv->scope);
+ fdv->scope->stc = fdv->scope->stc;
}
sf = fdv->mergeFrequire(sf);
if (fdv->fdrequire)
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 01 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5145 This seems very similar to bug 5110, which is more general. Need to check if the patch for 5110 fixes this bug as well. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------
Nov 01 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5145
Don <clugdbug yahoo.com.au> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |baryluk smp.if.uj.edu.pl
*** Issue 5253 has been marked as a duplicate of this issue. ***
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Nov 22 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5145
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |bugzilla digitalmars.com
12:58:27 PST ---
This seems very similar to bug 5110, which is more general. Need to check if
the patch for 5110 fixes this bug as well.
Nope, different problem.
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 05 2010
http://d.puremagic.com/issues/show_bug.cgi?id=5145
Walter Bright <bugzilla digitalmars.com> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|NEW |RESOLVED
Resolution| |FIXED
16:31:14 PST ---
http://www.dsource.org/projects/dmd/changeset/782
--
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
Dec 05 2010









d-bugmail puremagic.com 