Chromium Code Reviews
DescriptionFirst steps toward generating fully linked summaries from ASTs.
This CL adds a summary "linker", which wil be capable of taking the
output of the prelinker and adding the information that potentially
requires traversing transitive dependencies (propagated and inferred
types, and constant constructor cycles). When this is finished we
should be able to generate summaries straight from ASTs without
building a full element model in the interim.
The basic technique is to build a miniature element model, on demand,
which is discarded when linking is finished. Since the miniature
element model is only for a single purpose, it can be much more
compact than the full element model. Since it is thrown away after
linking, it can avoid the expensive dependency tracking that would be
necessary in order to keep the data structure up to date when there
are code changes.
So far I've built the basic infrastructure and started implementing
constant constructor cycle detection. Areas that still need to be
filled out are indicated by TODO comments.
Since the linker only has access to the UnlinkedUnit objects (not the
ASTs), it will be necessary to add a small amount of information to to
the UnlinkedUnits to record the information needed by type inference.
I'm hoping that it will be possible to adapt the existing
UnlinkedConst data structure for this purpose.
R=scheglov@google.com
Committed: https://github.com/dart-lang/sdk/commit/6455b3e5911c7c5b13afe1585a4055948e6bca2d
Patch Set 1 #
Total comments: 8
Messages
Total messages: 6 (2 generated)
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||