| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 import 'dart:collection' show HashSet, Queue; | 5 import 'dart:collection' show HashSet, Queue; |
| 6 import 'dart:convert' show BASE64, JSON, UTF8; | 6 import 'dart:convert' show BASE64, JSON, UTF8; |
| 7 import 'dart:io' show File; | 7 import 'dart:io' show File; |
| 8 import 'package:analyzer/dart/element/element.dart' show LibraryElement; | 8 import 'package:analyzer/dart/element/element.dart' show LibraryElement; |
| 9 import 'package:analyzer/analyzer.dart' | 9 import 'package:analyzer/analyzer.dart' |
| 10 show AnalysisError, CompilationUnit, ErrorSeverity; | 10 show AnalysisError, CompilationUnit, ErrorSeverity; |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 104 /// summaries before calling this method. | 104 /// summaries before calling this method. |
| 105 JSModuleFile compile(BuildUnit unit, CompilerOptions options) { | 105 JSModuleFile compile(BuildUnit unit, CompilerOptions options) { |
| 106 var trees = <CompilationUnit>[]; | 106 var trees = <CompilationUnit>[]; |
| 107 var errors = <AnalysisError>[]; | 107 var errors = <AnalysisError>[]; |
| 108 | 108 |
| 109 var librariesToCompile = new Queue<LibraryElement>(); | 109 var librariesToCompile = new Queue<LibraryElement>(); |
| 110 | 110 |
| 111 var compilingSdk = false; | 111 var compilingSdk = false; |
| 112 for (var sourcePath in unit.sources) { | 112 for (var sourcePath in unit.sources) { |
| 113 var sourceUri = Uri.parse(sourcePath); | 113 var sourceUri = Uri.parse(sourcePath); |
| 114 if (sourceUri.scheme == 'dart') { | 114 if (sourceUri.scheme == '') { |
| 115 sourceUri = path.toUri(path.absolute(sourcePath)); |
| 116 } else if (sourceUri.scheme == 'dart') { |
| 115 compilingSdk = true; | 117 compilingSdk = true; |
| 116 } else if (sourceUri.scheme != 'package') { | |
| 117 sourceUri = path.toUri(path.absolute(sourcePath)); | |
| 118 } | 118 } |
| 119 Source source = context.sourceFactory.forUri2(sourceUri); | 119 Source source = context.sourceFactory.forUri2(sourceUri); |
| 120 | 120 |
| 121 var fileUsage = 'You need to pass at least one existing .dart file as an' | 121 var fileUsage = 'You need to pass at least one existing .dart file as an' |
| 122 ' argument.'; | 122 ' argument.'; |
| 123 if (source == null) { | 123 if (source == null) { |
| 124 throw new UsageException( | 124 throw new UsageException( |
| 125 'Could not create a source for "$sourcePath". The file name is in' | 125 'Could not create a source for "$sourcePath". The file name is in' |
| 126 ' the wrong format or was not found.', | 126 ' the wrong format or was not found.', |
| 127 fileUsage); | 127 fileUsage); |
| (...skipping 368 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 496 Map sourceMap, String sourceMapPath, Map<String, String> bazelMappings) { | 496 Map sourceMap, String sourceMapPath, Map<String, String> bazelMappings) { |
| 497 var dir = path.dirname(sourceMapPath); | 497 var dir = path.dirname(sourceMapPath); |
| 498 var map = new Map.from(sourceMap); | 498 var map = new Map.from(sourceMap); |
| 499 var list = new List.from(map['sources']); | 499 var list = new List.from(map['sources']); |
| 500 map['sources'] = list; | 500 map['sources'] = list; |
| 501 String transformUri(String uri) { | 501 String transformUri(String uri) { |
| 502 var match = bazelMappings[path.absolute(uri)]; | 502 var match = bazelMappings[path.absolute(uri)]; |
| 503 if (match != null) return match; | 503 if (match != null) return match; |
| 504 | 504 |
| 505 // Fall back to a relative path. | 505 // Fall back to a relative path. |
| 506 return path.toUri(path.relative(uri, from: dir)).toString(); | 506 return path.toUri(path.relative(path.fromUri(uri), from: dir)).toString(); |
| 507 } | 507 } |
| 508 | 508 |
| 509 for (int i = 0; i < list.length; i++) { | 509 for (int i = 0; i < list.length; i++) { |
| 510 list[i] = transformUri(list[i]); | 510 list[i] = transformUri(list[i]); |
| 511 } | 511 } |
| 512 map['file'] = transformUri(map['file']); | 512 map['file'] = transformUri(map['file']); |
| 513 return map; | 513 return map; |
| 514 } | 514 } |
| OLD | NEW |