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

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

Issue 887943004: Check PackageMapUriResolver constructor arguments. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Fixes for the server and tests Created 5 years, 10 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 | Annotate | Revision Log
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 9
10 import 'package:analyzer/file_system/file_system.dart'; 10 import 'package:analyzer/file_system/file_system.dart';
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after
304 if (child.shortName == PACKAGES_NAME) { 304 if (child.shortName == PACKAGES_NAME) {
305 continue; 305 continue;
306 } 306 }
307 _addSourceFiles(changeSet, child, info); 307 _addSourceFiles(changeSet, child, info);
308 } 308 }
309 } 309 }
310 } 310 }
311 311
312 /** 312 /**
313 * Compute the appropriate package URI resolver for [folder], and store 313 * Compute the appropriate package URI resolver for [folder], and store
314 * dependency information in [info]. 314 * dependency information in [info]. Return `null` if no package map can
315 * be computed.
315 */ 316 */
316 UriResolver _computePackageUriResolver(Folder folder, _ContextInfo info) { 317 UriResolver _computePackageUriResolver(Folder folder, _ContextInfo info) {
317 UriResolver packageUriResolver;
318 if (info.packageRoot != null) { 318 if (info.packageRoot != null) {
319 info.packageMapDependencies = new Set<String>(); 319 info.packageMapDependencies = new Set<String>();
320 packageUriResolver = 320 return new PackageUriResolver([new JavaFile(info.packageRoot)]);
321 new PackageUriResolver([new JavaFile(info.packageRoot)]);
322 } else { 321 } else {
323 beginComputePackageMap(); 322 beginComputePackageMap();
324 PackageMapInfo packageMapInfo = 323 PackageMapInfo packageMapInfo =
325 _packageMapProvider.computePackageMap(folder); 324 _packageMapProvider.computePackageMap(folder);
326 endComputePackageMap(); 325 endComputePackageMap();
327 info.packageMapDependencies = packageMapInfo.dependencies; 326 info.packageMapDependencies = packageMapInfo.dependencies;
328 packageUriResolver = 327 if (packageMapInfo.packageMap == null) {
329 new PackageMapUriResolver(resourceProvider, packageMapInfo.packageMap) ; 328 return null;
329 }
330 return new PackageMapUriResolver(
331 resourceProvider,
332 packageMapInfo.packageMap);
330 // TODO(paulberry): if any of the dependencies is outside of [folder], 333 // TODO(paulberry): if any of the dependencies is outside of [folder],
331 // we'll need to watch their parent folders as well. 334 // we'll need to watch their parent folders as well.
332 } 335 }
333 return packageUriResolver;
334 } 336 }
335 337
336 /** 338 /**
337 * Create a new empty context associated with [folder]. 339 * Create a new empty context associated with [folder].
338 */ 340 */
339 _ContextInfo _createContext(Folder folder, List<_ContextInfo> children) { 341 _ContextInfo _createContext(Folder folder, List<_ContextInfo> children) {
340 _ContextInfo info = 342 _ContextInfo info =
341 new _ContextInfo(folder, children, normalizedPackageRoots[folder.path]); 343 new _ContextInfo(folder, children, normalizedPackageRoots[folder.path]);
342 _contexts[folder] = info; 344 _contexts[folder] = info;
343 info.changeSubscription = folder.changes.listen((WatchEvent event) { 345 info.changeSubscription = folder.changes.listen((WatchEvent event) {
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
666 return excludes(resource.path); 668 return excludes(resource.path);
667 } 669 }
668 670
669 /** 671 /**
670 * Returns `true` if [path] is the pubspec file of this context. 672 * Returns `true` if [path] is the pubspec file of this context.
671 */ 673 */
672 bool isPubspec(String path) { 674 bool isPubspec(String path) {
673 return path == pubspecPath; 675 return path == pubspecPath;
674 } 676 }
675 } 677 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698