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

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

Issue 2739213004: Improve detection of compile-time errors. (Closed)
Patch Set: dartfmt Created 3 years, 9 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.outline; 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, FileSystemEntity, exitCode; 11 import 'dart:io' show BytesBuilder, FileSystemEntity, exitCode;
12 12
13 import 'package:kernel/binary/ast_to_binary.dart' show BinaryPrinter; 13 import 'package:kernel/binary/ast_to_binary.dart' show BinaryPrinter;
14 14
15 import 'package:kernel/kernel.dart' show Program; 15 import 'package:kernel/kernel.dart' show Program;
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 final Ticker ticker = new Ticker(isVerbose: verbose); 181 final Ticker ticker = new Ticker(isVerbose: verbose);
182 final DillTarget dillTarget = new DillTarget(ticker, uriTranslator); 182 final DillTarget dillTarget = new DillTarget(ticker, uriTranslator);
183 dillTarget.read(patchedSdk.resolve('platform.dill')); 183 dillTarget.read(patchedSdk.resolve('platform.dill'));
184 final KernelTarget kernelTarget = new KernelTarget(dillTarget, uriTranslator); 184 final KernelTarget kernelTarget = new KernelTarget(dillTarget, uriTranslator);
185 try { 185 try {
186 kernelTarget.read(fileName); 186 kernelTarget.read(fileName);
187 await dillTarget.writeOutline(null); 187 await dillTarget.writeOutline(null);
188 program = await kernelTarget.writeOutline(null); 188 program = await kernelTarget.writeOutline(null);
189 program = await kernelTarget.writeProgram(null); 189 program = await kernelTarget.writeProgram(null);
190 if (kernelTarget.errors.isNotEmpty) { 190 if (kernelTarget.errors.isNotEmpty) {
191 return new CompilationResult.error(kernelTarget.errors 191 return new CompilationResult.errors(kernelTarget.errors
192 .map((err) => err.toString()) 192 .map((err) => err.toString())
193 .toList(growable: false)); 193 .toList(growable: false));
194 } 194 }
195 } on InputError catch (e) { 195 } on InputError catch (e) {
196 return new CompilationResult.error(<String>[e.format()]); 196 return new CompilationResult.error(e.format());
197 } 197 }
198 198
199 // Perform target-specific transformations. 199 // Perform target-specific transformations.
200 target.performModularTransformations(program); 200 target.performModularTransformations(program);
201 target.performGlobalTransformations(program); 201 target.performGlobalTransformations(program);
202 202
203 // Write the program to a list of bytes and return it. 203 // Write the program to a list of bytes and return it.
204 var sink = new ByteSink(); 204 var sink = new ByteSink();
205 new BinaryPrinter(sink).writeProgramFile(program); 205 new BinaryPrinter(sink).writeProgramFile(program);
206 return new CompilationResult.ok(sink.builder.takeBytes()); 206 return new CompilationResult.ok(sink.builder.takeBytes());
207 } 207 }
208 208
209 // TODO(ahe): https://github.com/dart-lang/sdk/issues/28316 209 // TODO(ahe): https://github.com/dart-lang/sdk/issues/28316
210 class ByteSink implements Sink<List<int>> { 210 class ByteSink implements Sink<List<int>> {
211 final BytesBuilder builder = new BytesBuilder(); 211 final BytesBuilder builder = new BytesBuilder();
212 212
213 void add(List<int> data) { 213 void add(List<int> data) {
214 builder.add(data); 214 builder.add(data);
215 } 215 }
216 216
217 void close() { 217 void close() {
218 // Nothing to do. 218 // Nothing to do.
219 } 219 }
220 } 220 }
OLDNEW
« no previous file with comments | « pkg/front_end/lib/src/fasta/builder/library_builder.dart ('k') | pkg/front_end/lib/src/fasta/kernel/body_builder.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698