DescriptionTighten up dependencies in the task model.
- ResolveLibraryTypeNamesTask doesn't need to depend on RESOLVED_UNIT3
for all sources in the transitive closure of imports; it only needs
RESOLVED_UNIT3 for the units constituting the current library.
- ResolveVariableReferencesTask doesn't need to depend on
LIBRARY_ELEMENT6 for all libraries in the transitive closure of
imports, because it only resolves references to locals and
parameters, and they can only resolve to elements in the same
compilation unit; the transitive closure is not needed until
ResolveUnitReferencesTask.
- ResolveVariableReferencesTask doesn't need LIBRARY_ELEMENT6 of the
current library, since it only needs the LibraryElement to
initialize the scope chain; LIBRARY_ELEMENT1 is sufficient.
- ResolveVariableReferencesTask doesn't need RESOLVED_UNIT3 of the
current library, since it only needs to ensure that the elements for
locals and parameters have been built; RESOLVED_UNIT1 is sufficient.
This should help reduce the amount of analysis which has to be
performed before code completions can be produced.
R=scheglov@google.com
Committed: https://github.com/dart-lang/sdk/commit/967d4b382063e41c1204976ca5b5e8152eed32ff
Patch Set 1 #
Messages
Total messages: 4 (1 generated)
|