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

Side by Side Diff: pkg/front_end/lib/src/fasta/fasta.dart

Issue 2865843002: Use FileSystem to read files in SourceLoader and TranslateUri. (Closed)
Patch Set: Created 3 years, 7 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
OLDNEW
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; 5 library fasta;
6 6
7 import 'dart:async' show Future; 7 import 'dart:async' show Future;
8 8
9 import 'dart:convert' show JSON; 9 import 'dart:convert' show JSON;
10 10
11 import 'dart:io' show BytesBuilder, Directory, File, exitCode; 11 import 'dart:io' show BytesBuilder, Directory, File, exitCode;
12 12
13 import 'package:front_end/physical_file_system.dart';
13 import 'package:kernel/binary/ast_to_binary.dart' 14 import 'package:kernel/binary/ast_to_binary.dart'
14 show LibraryFilteringBinaryPrinter; 15 show LibraryFilteringBinaryPrinter;
15 16
16 import 'package:kernel/kernel.dart' show Program, Library; 17 import 'package:kernel/kernel.dart' show Program, Library;
17 18
18 import 'package:kernel/target/targets.dart' show Target, TargetFlags, getTarget; 19 import 'package:kernel/target/targets.dart' show Target, TargetFlags, getTarget;
19 20
20 import 'compiler_command_line.dart' show CompilerCommandLine; 21 import 'compiler_command_line.dart' show CompilerCommandLine;
21 22
22 import 'compiler_context.dart' show CompilerContext; 23 import 'compiler_context.dart' show CompilerContext;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 111
111 CompileTask(this.c, this.ticker); 112 CompileTask(this.c, this.ticker);
112 113
113 DillTarget createDillTarget(TranslateUri uriTranslator) { 114 DillTarget createDillTarget(TranslateUri uriTranslator) {
114 return new DillTarget(ticker, uriTranslator); 115 return new DillTarget(ticker, uriTranslator);
115 } 116 }
116 117
117 KernelTarget createKernelTarget( 118 KernelTarget createKernelTarget(
118 DillTarget dillTarget, TranslateUri uriTranslator, bool strongMode) { 119 DillTarget dillTarget, TranslateUri uriTranslator, bool strongMode) {
119 return new KernelTarget( 120 return new KernelTarget(
120 dillTarget, uriTranslator, strongMode, c.uriToSource); 121 c.fileSystem, dillTarget, uriTranslator, strongMode, c.uriToSource);
121 } 122 }
122 123
123 Future<KernelTarget> buildOutline([Uri output]) async { 124 Future<KernelTarget> buildOutline([Uri output]) async {
124 TranslateUri uriTranslator = 125 TranslateUri uriTranslator = await TranslateUri.parse(
125 await TranslateUri.parse(c.options.sdk, c.options.packages); 126 c.fileSystem, c.options.sdk, c.options.packages);
126 ticker.logMs("Read packages file"); 127 ticker.logMs("Read packages file");
127 DillTarget dillTarget = createDillTarget(uriTranslator); 128 DillTarget dillTarget = createDillTarget(uriTranslator);
128 KernelTarget kernelTarget = 129 KernelTarget kernelTarget =
129 createKernelTarget(dillTarget, uriTranslator, c.options.strongMode); 130 createKernelTarget(dillTarget, uriTranslator, c.options.strongMode);
130 if (c.options.strongMode) { 131 if (c.options.strongMode) {
131 print("Note: strong mode support is preliminary and may not work."); 132 print("Note: strong mode support is preliminary and may not work.");
132 } 133 }
133 Uri platform = c.options.platform; 134 Uri platform = c.options.platform;
134 if (platform != null) { 135 if (platform != null) {
135 dillTarget.read(platform); 136 dillTarget.read(platform);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
168 return new CompilationResult.error( 169 return new CompilationResult.error(
169 formatUnexpected(fileName, -1, "No such file.")); 170 formatUnexpected(fileName, -1, "No such file."));
170 } 171 }
171 if (!await new Directory.fromUri(patchedSdk).exists()) { 172 if (!await new Directory.fromUri(patchedSdk).exists()) {
172 return new CompilationResult.error( 173 return new CompilationResult.error(
173 formatUnexpected(patchedSdk, -1, "Patched sdk directory not found.")); 174 formatUnexpected(patchedSdk, -1, "Patched sdk directory not found."));
174 } 175 }
175 176
176 Program program; 177 Program program;
177 try { 178 try {
178 TranslateUri uriTranslator = await TranslateUri.parse(null, packages); 179 TranslateUri uriTranslator =
180 await TranslateUri.parse(PhysicalFileSystem.instance, null, packages);
179 final Ticker ticker = new Ticker(isVerbose: verbose); 181 final Ticker ticker = new Ticker(isVerbose: verbose);
180 final DillTarget dillTarget = new DillTarget(ticker, uriTranslator); 182 final DillTarget dillTarget = new DillTarget(ticker, uriTranslator);
181 dillTarget.read(patchedSdk.resolve('platform.dill')); 183 dillTarget.read(patchedSdk.resolve('platform.dill'));
182 final KernelTarget kernelTarget = 184 final KernelTarget kernelTarget = new KernelTarget(
183 new KernelTarget(dillTarget, uriTranslator, strongMode); 185 PhysicalFileSystem.instance, dillTarget, uriTranslator, strongMode);
184 kernelTarget.read(fileName); 186 kernelTarget.read(fileName);
185 await dillTarget.writeOutline(null); 187 await dillTarget.writeOutline(null);
186 program = await kernelTarget.writeOutline(null); 188 program = await kernelTarget.writeOutline(null);
187 program = await kernelTarget.writeProgram(null); 189 program = await kernelTarget.writeProgram(null);
188 if (kernelTarget.errors.isNotEmpty) { 190 if (kernelTarget.errors.isNotEmpty) {
189 return new CompilationResult.errors(kernelTarget.errors 191 return new CompilationResult.errors(kernelTarget.errors
190 .map((err) => err.toString()) 192 .map((err) => err.toString())
191 .toList(growable: false)); 193 .toList(growable: false));
192 } 194 }
193 } on InputError catch (e) { 195 } on InputError catch (e) {
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 Iterable<Uri> extraDependencies, 240 Iterable<Uri> extraDependencies,
239 bool verbose: false}) async { 241 bool verbose: false}) async {
240 Ticker ticker = new Ticker(isVerbose: verbose); 242 Ticker ticker = new Ticker(isVerbose: verbose);
241 await CompilerCommandLine.withGlobalOptions("", [""], 243 await CompilerCommandLine.withGlobalOptions("", [""],
242 (CompilerContext c) async { 244 (CompilerContext c) async {
243 c.options.options["--packages"] = packages; 245 c.options.options["--packages"] = packages;
244 if (verbose) { 246 if (verbose) {
245 c.options.options["--verbose"] = true; 247 c.options.options["--verbose"] = true;
246 } 248 }
247 249
248 TranslateUri uriTranslator = 250 TranslateUri uriTranslator = await TranslateUri.parse(
249 await TranslateUri.parse(c.options.sdk, c.options.packages); 251 c.fileSystem, c.options.sdk, c.options.packages);
250 ticker.logMs("Read packages file"); 252 ticker.logMs("Read packages file");
251 DillTarget dillTarget = new DillTarget(ticker, uriTranslator) 253 DillTarget dillTarget = new DillTarget(ticker, uriTranslator)
252 ..read(platform); 254 ..read(platform);
253 KernelTarget kernelTarget = 255 KernelTarget kernelTarget = new KernelTarget(PhysicalFileSystem.instance,
254 new KernelTarget(dillTarget, uriTranslator, false, c.uriToSource); 256 dillTarget, uriTranslator, false, c.uriToSource);
255 257
256 kernelTarget.read(script); 258 kernelTarget.read(script);
257 await dillTarget.writeOutline(null); 259 await dillTarget.writeOutline(null);
258 await kernelTarget.loader.buildOutlines(); 260 await kernelTarget.loader.buildOutlines();
259 await kernelTarget.writeDepsFile(output, depsFile, 261 await kernelTarget.writeDepsFile(output, depsFile,
260 extraDependencies: extraDependencies); 262 extraDependencies: extraDependencies);
261 }); 263 });
262 } 264 }
263 265
264 // TODO(ahe): https://github.com/dart-lang/sdk/issues/28316 266 // TODO(ahe): https://github.com/dart-lang/sdk/issues/28316
265 class ByteSink implements Sink<List<int>> { 267 class ByteSink implements Sink<List<int>> {
266 final BytesBuilder builder = new BytesBuilder(); 268 final BytesBuilder builder = new BytesBuilder();
267 269
268 void add(List<int> data) { 270 void add(List<int> data) {
269 builder.add(data); 271 builder.add(data);
270 } 272 }
271 273
272 void close() { 274 void close() {
273 // Nothing to do. 275 // Nothing to do.
274 } 276 }
275 } 277 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698