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; | 9 import 'dart:io' show File; |
10 | 10 |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
129 void addSourceInformation( | 129 void addSourceInformation( |
130 Uri uri, List<int> lineStarts, List<int> sourceCode) { | 130 Uri uri, List<int> lineStarts, List<int> sourceCode) { |
131 String fileUri = relativizeUri(uri); | 131 String fileUri = relativizeUri(uri); |
132 uriToSource[fileUri] = new Source(lineStarts, sourceCode); | 132 uriToSource[fileUri] = new Source(lineStarts, sourceCode); |
133 } | 133 } |
134 | 134 |
135 void read(Uri uri) { | 135 void read(Uri uri) { |
136 loader.read(uri); | 136 loader.read(uri); |
137 } | 137 } |
138 | 138 |
139 LibraryBuilder createLibraryBuilder(Uri uri, Uri fileUri) { | 139 LibraryBuilder createLibraryBuilder(Uri uri, Uri fileUri, bool isPatch) { |
140 if (dillTarget.isLoaded) { | 140 if (dillTarget.isLoaded) { |
141 var builder = dillTarget.loader.builders[uri]; | 141 var builder = dillTarget.loader.builders[uri]; |
142 if (builder != null) { | 142 if (builder != null) { |
143 return builder; | 143 return builder; |
144 } | 144 } |
145 } | 145 } |
146 return new KernelLibraryBuilder(uri, fileUri, loader); | 146 return new KernelLibraryBuilder(uri, fileUri, loader, isPatch); |
147 } | 147 } |
148 | 148 |
149 void forEachDirectSupertype(ClassBuilder cls, void f(NamedTypeBuilder type)) { | 149 void forEachDirectSupertype(ClassBuilder cls, void f(NamedTypeBuilder type)) { |
150 TypeBuilder supertype = cls.supertype; | 150 TypeBuilder supertype = cls.supertype; |
151 if (supertype is NamedTypeBuilder) { | 151 if (supertype is NamedTypeBuilder) { |
152 f(supertype); | 152 f(supertype); |
153 } else if (supertype != null) { | 153 } else if (supertype != null) { |
154 internalError("Unhandled: ${supertype.runtimeType}"); | 154 internalError("Unhandled: ${supertype.runtimeType}"); |
155 } | 155 } |
156 if (cls.interfaces != null) { | 156 if (cls.interfaces != null) { |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 } | 345 } |
346 sb.writeln(); | 346 sb.writeln(); |
347 await new File.fromUri(depsFile).writeAsString("$sb"); | 347 await new File.fromUri(depsFile).writeAsString("$sb"); |
348 ticker.logMs("Wrote deps file"); | 348 ticker.logMs("Wrote deps file"); |
349 } | 349 } |
350 | 350 |
351 Program erroneousProgram(bool isFullProgram) { | 351 Program erroneousProgram(bool isFullProgram) { |
352 Uri uri = loader.first?.uri ?? Uri.parse("error:error"); | 352 Uri uri = loader.first?.uri ?? Uri.parse("error:error"); |
353 Uri fileUri = loader.first?.fileUri ?? uri; | 353 Uri fileUri = loader.first?.fileUri ?? uri; |
354 KernelLibraryBuilder library = | 354 KernelLibraryBuilder library = |
355 new KernelLibraryBuilder(uri, fileUri, loader); | 355 new KernelLibraryBuilder(uri, fileUri, loader, false); |
356 loader.first = library; | 356 loader.first = library; |
357 if (isFullProgram) { | 357 if (isFullProgram) { |
358 // If this is an outline, we shouldn't add an executable main | 358 // If this is an outline, we shouldn't add an executable main |
359 // method. Similarly considerations apply to separate compilation. It | 359 // method. Similarly considerations apply to separate compilation. It |
360 // could also make sense to add a way to mark .dill files as having | 360 // could also make sense to add a way to mark .dill files as having |
361 // compile-time errors. | 361 // compile-time errors. |
362 KernelProcedureBuilder mainBuilder = new KernelProcedureBuilder(null, 0, | 362 KernelProcedureBuilder mainBuilder = new KernelProcedureBuilder(null, 0, |
363 null, "main", null, null, ProcedureKind.Method, library, -1, -1, -1); | 363 null, "main", null, null, ProcedureKind.Method, library, -1, -1, -1); |
364 library.addBuilder(mainBuilder.name, mainBuilder, -1); | 364 library.addBuilder(mainBuilder.name, mainBuilder, -1); |
365 mainBuilder.body = new ExpressionStatement( | 365 mainBuilder.body = new ExpressionStatement( |
(...skipping 341 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
707 } | 707 } |
708 for (Constructor constructor in superclass.constructors) { | 708 for (Constructor constructor in superclass.constructors) { |
709 if (constructor.name.name.isEmpty) { | 709 if (constructor.name.name.isEmpty) { |
710 return constructor.function.requiredParameterCount == 0 | 710 return constructor.function.requiredParameterCount == 0 |
711 ? constructor | 711 ? constructor |
712 : null; | 712 : null; |
713 } | 713 } |
714 } | 714 } |
715 return null; | 715 return null; |
716 } | 716 } |
OLD | NEW |