Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(52)

Side by Side Diff: pkg/analysis_server/lib/src/context_manager.dart

Issue 1253803002: Clean up bogus codepath in ContextManager._computePackageUriResolver. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | pkg/analysis_server/test/context_manager_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library context.directory.manager; 5 library context.directory.manager;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:collection'; 8 import 'dart:collection';
9 import 'dart:convert'; 9 import 'dart:convert';
10 import 'dart:core' hide Resource; 10 import 'dart:core' hide Resource;
(...skipping 697 matching lines...) Expand 10 before | Expand all | Expand 10 after
708 708
709 /** 709 /**
710 * Compute the appropriate package URI resolver for [folder], and store 710 * Compute the appropriate package URI resolver for [folder], and store
711 * dependency information in [info]. Return `null` if no package map can 711 * dependency information in [info]. Return `null` if no package map can
712 * be computed. 712 * be computed.
713 */ 713 */
714 UriResolver _computePackageUriResolver(Folder folder, ContextInfo info) { 714 UriResolver _computePackageUriResolver(Folder folder, ContextInfo info) {
715 _cancelDependencySubscriptions(info); 715 _cancelDependencySubscriptions(info);
716 if (info.packageRoot != null) { 716 if (info.packageRoot != null) {
717 info.packageMapInfo = null; 717 info.packageMapInfo = null;
718 // TODO(paulberry): We shouldn't be using JavaFile here because it
719 // makes the code untestable (see dartbug.com/23909).
718 JavaFile packagesDir = new JavaFile(info.packageRoot); 720 JavaFile packagesDir = new JavaFile(info.packageRoot);
719 Map<String, List<Folder>> packageMap = new Map<String, List<Folder>>(); 721 Map<String, List<Folder>> packageMap = new Map<String, List<Folder>>();
720 if (packagesDir.isDirectory()) { 722 if (packagesDir.isDirectory()) {
721 for (JavaFile file in packagesDir.listFiles()) { 723 for (JavaFile file in packagesDir.listFiles()) {
722 // Ensure symlinks in packages directory are canonicalized 724 // Ensure symlinks in packages directory are canonicalized
723 // to prevent 'type X cannot be assigned to type X' warnings 725 // to prevent 'type X cannot be assigned to type X' warnings
724 String path; 726 String path;
725 try { 727 try {
726 path = file.getCanonicalPath(); 728 path = file.getCanonicalPath();
727 } catch (e, s) { 729 } catch (e, s) {
728 // Ignore packages that do not exist 730 // Ignore packages that do not exist
729 _instrumentationService.logException(e, s); 731 _instrumentationService.logException(e, s);
730 continue; 732 continue;
731 } 733 }
732 Resource res = resourceProvider.getResource(path); 734 Resource res = resourceProvider.getResource(path);
733 if (res is Folder) { 735 if (res is Folder) {
734 packageMap[file.getName()] = <Folder>[res]; 736 packageMap[file.getName()] = <Folder>[res];
735 } 737 }
736 } 738 }
737 return new PackageMapUriResolver(resourceProvider, packageMap); 739 return new PackageMapUriResolver(resourceProvider, packageMap);
738 } 740 }
739 //TODO(danrubel) remove this if it will never be called 741 // The package root does not exist (or is not a folder). Since
740 return new PackageUriResolver([packagesDir]); 742 // [setRoots] ignores any package roots that don't exist (or aren't
743 // folders), the only way we should be able to get here is due to a race
744 // condition. In any case, the package root folder is gone, so we can't
745 // resolve packages.
746 return null;
741 } else { 747 } else {
742 callbacks.beginComputePackageMap(); 748 callbacks.beginComputePackageMap();
743 if (packageResolverProvider != null) { 749 if (packageResolverProvider != null) {
744 UriResolver resolver = packageResolverProvider(folder); 750 UriResolver resolver = packageResolverProvider(folder);
745 if (resolver != null) { 751 if (resolver != null) {
746 return resolver; 752 return resolver;
747 } 753 }
748 } 754 }
749 OptimizingPubPackageMapInfo packageMapInfo; 755 OptimizingPubPackageMapInfo packageMapInfo;
750 ServerPerformanceStatistics.pub.makeCurrentWhile(() { 756 ServerPerformanceStatistics.pub.makeCurrentWhile(() {
(...skipping 458 matching lines...) Expand 10 before | Expand all | Expand 10 after
1209 */ 1215 */
1210 final List<AnalysisContext> removed; 1216 final List<AnalysisContext> removed;
1211 1217
1212 /** 1218 /**
1213 * Initialize a newly created event to indicate which contexts have changed. 1219 * Initialize a newly created event to indicate which contexts have changed.
1214 */ 1220 */
1215 ContextsChangedEvent({this.added: AnalysisContext.EMPTY_LIST, 1221 ContextsChangedEvent({this.added: AnalysisContext.EMPTY_LIST,
1216 this.changed: AnalysisContext.EMPTY_LIST, 1222 this.changed: AnalysisContext.EMPTY_LIST,
1217 this.removed: AnalysisContext.EMPTY_LIST}); 1223 this.removed: AnalysisContext.EMPTY_LIST});
1218 } 1224 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analysis_server/test/context_manager_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698