--- Comment #2 from Don <> 2010-01-27 00:46:38 PST ---
This is crashing because the contracts are implemented as functions fdrequire,
fdensure, which are NESTED functions of the function ('paint()') being called.
fdrequire->semantic() and fdensure->semantic() need to be run before code
generation of the overridden function.

Because they're nested functions, fdrequire->semantic() is called when running
semantic3() on 'box.paint()'.
But, if because box.paint() was only imported, box.paint()->semantic3() never
gets run!

To fix the bug, we need to make sure that fdrequire->semantic() does get called
sometime before code generation. I've tried running it immediately after
fdrequire is created; that allows the test case to compile when the two modules
are compiled separately, but it causes a different ICE when they are compiled
together. I also tried running semantic() from inside mergeRequire(), but I
wasn't successful.

Configure issuemail:
------- You are receiving this mail because: -------

Reply via email to