- From: <bugzilla@wiggum.w3.org>
- Date: Sat, 28 Oct 2006 03:15:50 +0000
- To: public-qt-comments@w3.org
- CC:
http://www.w3.org/Bugs/Public/show_bug.cgi?id=1705 ------- Comment #28 from jmdyck@ibiblio.org 2006-10-28 03:15 ------- (In reply to comment #27) > > I'm thinking that the issue you mention about function declarations > is already covered by Bug #1743. Yes, but the proposal in Comment #23 doesn't incorporate the fix for Bug 1743. And if you try, you'll find it doesn't quite work when multiple ("sibling") modules share a target namespace, because statEnv.funcType won't have entries for functions defined in the sibling modules, because the "self-import" that would conceptually bring them in is defined (by =>stat) as basically a no-op/pass-through. And that's just *normalization* of FunctionCalls. You also need a properly defined statEnv.funcType for their STA, which (in this proposal) occurs when =>stat is applied to the merged PrologDeclList0. So you'd need to apply the fix for Bug 1743 there too. And note that the presence or absence of a self-import in a module does not have the necessary effect on whether its expressions can "see" the var decls and func decls of the sibling modules when you apply =>stat to the merged PrologDeclList0. > And that the typeDefn should be populated properly as it was before as > =>prestat still propagates the static environment through the > normalization rules as before. Oops, yes, as =>prestat recurses down the prolog, it invokes =>stat on the setters and accumulates the resulting statEnv, so when you get to normalizing FunctionCalls, statEnv.typeDefn will have the types imported by the prolog. However, because =>prestat's "output" statEnv only reflects the prolog's setters, it's pointless, in the definition for =>module_statEnv, to use one module's output statEnv as another's input statEnv. The input statEnvs should all be statEnvDefault. (So in fact, there's no reason for =>prestat to have an output statEnv at all.)
Received on Saturday, 28 October 2006 03:15:59 UTC