| 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 library fasta.kernel_target; | 5 library fasta.kernel_target; |
| 6 | 6 |
| 7 import 'dart:async' show Future; | 7 import 'dart:async' show Future; |
| 8 | 8 |
| 9 import 'dart:io' show File, IOSink; | 9 import 'dart:io' show File, IOSink; |
| 10 | 10 |
| (...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 264 } | 264 } |
| 265 if (uri == null) return program; | 265 if (uri == null) return program; |
| 266 return await writeLinkedProgram(uri, program, isFullProgram: true); | 266 return await writeLinkedProgram(uri, program, isFullProgram: true); |
| 267 } on InputError catch (e) { | 267 } on InputError catch (e) { |
| 268 return handleInputError(uri, e, isFullProgram: true); | 268 return handleInputError(uri, e, isFullProgram: true); |
| 269 } catch (e, s) { | 269 } catch (e, s) { |
| 270 return reportCrash(e, s, loader?.currentUriForCrashReporting); | 270 return reportCrash(e, s, loader?.currentUriForCrashReporting); |
| 271 } | 271 } |
| 272 } | 272 } |
| 273 | 273 |
| 274 Future writeDepsFile(Uri output, Uri depsFile) async { | 274 Future writeDepsFile(Uri output, Uri depsFile, |
| 275 {Iterable<Uri> extraDependencies}) async { |
| 276 Uri base = depsFile.resolve("."); |
| 277 String toRelativeFilePath(Uri uri) { |
| 278 return Uri.parse(relativizeUri(uri, base: base)).toFilePath(); |
| 279 } |
| 280 |
| 275 if (loader.first == null) return null; | 281 if (loader.first == null) return null; |
| 276 StringBuffer sb = new StringBuffer(); | 282 StringBuffer sb = new StringBuffer(); |
| 277 Uri base = depsFile.resolve("."); | 283 sb.write(toRelativeFilePath(output)); |
| 278 sb.write(Uri.parse(relativizeUri(output, base: base)).toFilePath()); | |
| 279 sb.write(":"); | 284 sb.write(":"); |
| 280 for (Uri dependency in loader.getDependencies()) { | 285 Set<String> allDependencies = new Set<String>(); |
| 286 allDependencies.addAll(loader.getDependencies().map(toRelativeFilePath)); |
| 287 if (extraDependencies != null) { |
| 288 allDependencies.addAll(extraDependencies.map(toRelativeFilePath)); |
| 289 } |
| 290 for (String path in allDependencies) { |
| 281 sb.write(" "); | 291 sb.write(" "); |
| 282 sb.write(Uri.parse(relativizeUri(dependency, base: base)).toFilePath()); | 292 sb.write(path); |
| 283 } | 293 } |
| 284 sb.writeln(); | 294 sb.writeln(); |
| 285 await new File.fromUri(depsFile).writeAsString("$sb"); | 295 await new File.fromUri(depsFile).writeAsString("$sb"); |
| 296 ticker.logMs("Wrote deps file"); |
| 286 } | 297 } |
| 287 | 298 |
| 288 Program erroneousProgram(bool isFullProgram) { | 299 Program erroneousProgram(bool isFullProgram) { |
| 289 Uri uri = loader.first?.uri ?? Uri.parse("error:error"); | 300 Uri uri = loader.first?.uri ?? Uri.parse("error:error"); |
| 290 Uri fileUri = loader.first?.fileUri ?? uri; | 301 Uri fileUri = loader.first?.fileUri ?? uri; |
| 291 KernelLibraryBuilder library = | 302 KernelLibraryBuilder library = |
| 292 new KernelLibraryBuilder(uri, fileUri, loader); | 303 new KernelLibraryBuilder(uri, fileUri, loader); |
| 293 loader.first = library; | 304 loader.first = library; |
| 294 if (isFullProgram) { | 305 if (isFullProgram) { |
| 295 // If this is an outline, we shouldn't add an executable main | 306 // If this is an outline, we shouldn't add an executable main |
| (...skipping 361 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 657 } | 668 } |
| 658 for (Constructor constructor in superclass.constructors) { | 669 for (Constructor constructor in superclass.constructors) { |
| 659 if (constructor.name.name.isEmpty) { | 670 if (constructor.name.name.isEmpty) { |
| 660 return constructor.function.requiredParameterCount == 0 | 671 return constructor.function.requiredParameterCount == 0 |
| 661 ? constructor | 672 ? constructor |
| 662 : null; | 673 : null; |
| 663 } | 674 } |
| 664 } | 675 } |
| 665 return null; | 676 return null; |
| 666 } | 677 } |
| OLD | NEW |