Skip to content

Commit

Permalink
Only compute canonical names and clean new libraries
Browse files Browse the repository at this point in the history
analysis-server-cold-analysis reduced from
~70 seconds to ~46 seconds.

Change-Id: I6e793f292beceda32817675625df90cd003bc19c
Reviewed-on: https://dart-review.googlesource.com/70264
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
  • Loading branch information
jensjoha authored and commit-bot@chromium.org committed Aug 20, 2018
1 parent 3aa40c9 commit 4179fbc
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
10 changes: 7 additions & 3 deletions pkg/analyzer/lib/src/dart/analysis/frontend_resolution.dart
Original file line number Diff line number Diff line change
Expand Up @@ -245,9 +245,13 @@ class FrontEndCompiler {
}
});

// TODO(scheglov) Only for new libraries?
_component.computeCanonicalNames();
_component.accept(new _ShadowCleaner());
_ShadowCleaner cleaner = new _ShadowCleaner();
for (var library in _component.libraries) {
if (!_results.containsKey(library.importUri)) {
_component.computeCanonicalNamesForLibrary(library);
library.accept(cleaner);
}
}

_logger.run('Compute dependencies', _computeDependencies);

Expand Down
8 changes: 6 additions & 2 deletions pkg/kernel/lib/ast.dart
Original file line number Diff line number Diff line change
Expand Up @@ -5353,11 +5353,15 @@ class Component extends TreeNode {

void computeCanonicalNames() {
for (var library in libraries) {
root.getChildFromUri(library.importUri).bindTo(library.reference);
library.computeCanonicalNames();
computeCanonicalNamesForLibrary(library);
}
}

void computeCanonicalNamesForLibrary(Library library) {
root.getChildFromUri(library.importUri).bindTo(library.reference);
library.computeCanonicalNames();
}

void unbindCanonicalNames() {
root.unbindAll();
}
Expand Down

0 comments on commit 4179fbc

Please sign in to comment.