commit | 7c7c6d6e29118a01544c41b389642e965d6c9f2a | [log] [tgz] |
---|---|---|
author | scottb@google.com <scottb@google.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7> | Thu Apr 09 15:41:34 2009 +0000 |
committer | scottb@google.com <scottb@google.com@8db76d5a-ed1c-0410-87a9-c151d255dfc7> | Thu Apr 09 15:41:34 2009 +0000 |
tree | 1babf181b73f6f1c378693e23e77facb60eec4ec | |
parent | 28c1868d5241257e7f8973d4e8033f8a90944068 [diff] |
Removes JProgram reference from all nodes (and their constructors). - Saves memory (4 bytes for every AST node) and is also much cleaner - In the future it will enable serialization/deserialization to be decoupled This required changing up a few spots where we really needed the JProgram ref in the past: - JFieldRefs needed to answer whether they triggerd a clinit via cross-class static ref. This is reimplemented by keeping the state within each class type instead of in JTypeOracle. JTypeOracle recomputes the state and updates individual class types before each optimization pass. - Primitive types, literals, and a few other singleton-type things are now true singletons - JConditionals now have an explicit type that gets updated by TypeTightener (instead of always being recomputed on-the-fly) Review by: spoon Suggestions by: spoon git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5202 8db76d5a-ed1c-0410-87a9-c151d255dfc7