[Issue 16980] [REG2.072.0] wrong interface called

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Thu Dec 29 05:14:27 PST 2016


https://issues.dlang.org/show_bug.cgi?id=16980

Martin Nowak <code at dawg.eu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|[REG2.072.0] vtable issue   |[REG2.072.0] wrong
                   |in slightly complex         |interface called
                   |scenario                    |

--- Comment #4 from Martin Nowak <code at dawg.eu> ---
So what happens is that the size finalization of aggregates (classes and
structs) was moved to semantic2 in order to resolve various forward reference
issues.
The module level
  T!() tinst;
declaration already triggers a FunctionDeclaration::semantic3 for the dtor
during Module::semantic(). IIRC this is done for any template instances.

What's missing is a call to ad.size/determineSize somewhere before determining
the offset when the CastExp is optimized.

--


More information about the Digitalmars-d-bugs mailing list