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

Side by Side Diff: pkg/analyzer/lib/src/analyzer_impl.dart

Issue 428303004: Breaking changes in 'analyzer' package. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Rename Source.resolveRelative to resolveRelativeUri, soften version constraints Created 6 years, 4 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) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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 analyzer_impl; 5 library analyzer_impl;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'dart:io'; 9 import 'dart:io';
10 10
11 import 'package:path/path.dart' as pathos;
12
13 import 'generated/constant.dart'; 11 import 'generated/constant.dart';
14 import 'generated/engine.dart'; 12 import 'generated/engine.dart';
15 import 'generated/element.dart'; 13 import 'generated/element.dart';
16 import 'generated/error.dart'; 14 import 'generated/error.dart';
17 import 'generated/java_io.dart'; 15 import 'generated/java_io.dart';
18 import 'generated/sdk.dart'; 16 import 'generated/sdk.dart';
19 import 'generated/sdk_io.dart'; 17 import 'generated/sdk_io.dart';
20 import 'generated/source_io.dart'; 18 import 'generated/source_io.dart';
21 import '../options.dart'; 19 import '../options.dart';
22 20
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
82 /** 80 /**
83 * Setup local fields such as the analysis context for analysis. 81 * Setup local fields such as the analysis context for analysis.
84 */ 82 */
85 void setupForAnalysis() { 83 void setupForAnalysis() {
86 sources.clear(); 84 sources.clear();
87 errorInfos.clear(); 85 errorInfos.clear();
88 if (sourcePath == null) { 86 if (sourcePath == null) {
89 throw new ArgumentError("sourcePath cannot be null"); 87 throw new ArgumentError("sourcePath cannot be null");
90 } 88 }
91 JavaFile sourceFile = new JavaFile(sourcePath); 89 JavaFile sourceFile = new JavaFile(sourcePath);
92 UriKind uriKind = getUriKind(sourceFile); 90 Uri uri = getUri(sourceFile);
93 librarySource = new FileBasedSource.con2(sourceFile, uriKind); 91 librarySource = new FileBasedSource.con2(uri, sourceFile);
94 92
95 // prepare context 93 // prepare context
96 prepareAnalysisContext(sourceFile, librarySource); 94 prepareAnalysisContext(sourceFile, librarySource);
97 } 95 }
98 96
99 /// The sync version of analysis. 97 /// The sync version of analysis.
100 ErrorSeverity _analyzeSync(int printMode) { 98 ErrorSeverity _analyzeSync(int printMode) {
101 // don't try to analyze parts 99 // don't try to analyze parts
102 if (context.computeKindOf(librarySource) == SourceKind.PART) { 100 if (context.computeKindOf(librarySource) == SourceKind.PART) {
103 print("Only libraries can be analyzed."); 101 print("Only libraries can be analyzed.");
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 if (packagesDir.exists()) { 338 if (packagesDir.exists()) {
341 return packagesDir; 339 return packagesDir;
342 } 340 }
343 dir = dir.getParentFile(); 341 dir = dir.getParentFile();
344 } 342 }
345 // not found 343 // not found
346 return null; 344 return null;
347 } 345 }
348 346
349 /** 347 /**
350 * Returns the [UriKind] for the given input file. Usually {@link UriKind#FILE _URI}, but if 348 * Returns the [Uri] for the given input file.
351 * the given file is located in the "lib" directory of the [sdk], then returns 349 *
352 * {@link UriKind#DART_URI}. 350 * Usually it is a `file:` [Uri], but if [file] is located in the `lib`
351 * directory of the [sdk], then returns a `dart:` [Uri].
353 */ 352 */
354 static UriKind getUriKind(JavaFile file) { 353 static Uri getUri(JavaFile file) {
355 // may be file in SDK 354 // may be file in SDK
356 if (sdk is DirectoryBasedDartSdk) { 355 {
357 DirectoryBasedDartSdk directoryBasedSdk = sdk; 356 Source source = sdk.fromFileUri(file.toURI());
358 var libraryDirectory = directoryBasedSdk.libraryDirectory.getAbsolutePath( ); 357 if (source != null) {
359 var sdkLibPath = libraryDirectory + pathos.separator; 358 return source.uri;
360 var filePath = file.getPath();
361 if (filePath.startsWith(sdkLibPath)) {
362 var internalPath = pathos.join(libraryDirectory, '_internal') + pathos.s eparator;
363 if (!filePath.startsWith(internalPath)) {
364 return UriKind.DART_URI;
365 }
366 } 359 }
367 } 360 }
368 // some generic file 361 // some generic file
369 return UriKind.FILE_URI; 362 return file.toURI();
370 } 363 }
371 } 364 }
372 365
373 /** 366 /**
374 * This [Logger] prints out information comments to [stdout] and error messages 367 * This [Logger] prints out information comments to [stdout] and error messages
375 * to [stderr]. 368 * to [stderr].
376 */ 369 */
377 class StdLogger extends Logger { 370 class StdLogger extends Logger {
378 final bool log; 371 final bool log;
379 372
(...skipping 16 matching lines...) Expand all
396 } 389 }
397 } 390 }
398 391
399 @override 392 @override
400 void logInformation2(String message, Exception exception) { 393 void logInformation2(String message, Exception exception) {
401 if (log) { 394 if (log) {
402 stdout.writeln(message); 395 stdout.writeln(message);
403 } 396 }
404 } 397 }
405 } 398 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/source/package_map_resolver.dart ('k') | pkg/analyzer/lib/src/generated/element.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698