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

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

Issue 2675603002: Reduce strong mode errors and warnings (Closed)
Patch Set: comments & cleanup Created 3 years, 10 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.md file. 3 // BSD-style license that can be found in the LICENSE.md file.
4 4
5 // TODO(ahe): Copied from closure_conversion branch of kernel, remove this file 5 // TODO(ahe): Copied from closure_conversion branch of kernel, remove this file
6 // when closure_conversion is merged with master. 6 // when closure_conversion is merged with master.
7 7
8 library kernel.testing.kernel_chain; 8 library kernel.testing.kernel_chain;
9 9
10 import 'dart:async' show 10 import 'dart:async' show
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after
181 target.performModularTransformations(program); 181 target.performModularTransformations(program);
182 target.performGlobalTransformations(program); 182 target.performGlobalTransformations(program);
183 return pass(program); 183 return pass(program);
184 } catch (e, s) { 184 } catch (e, s) {
185 return crash(e, s); 185 return crash(e, s);
186 } 186 }
187 } 187 }
188 } 188 }
189 189
190 190
191 class Print extends Step<Program, Program, dynamic> { 191 class Print extends Step<Program, Program, TestContext> {
192 const Print(); 192 const Print();
193 193
194 String get name => "print"; 194 String get name => "print";
195 195
196 Future<Result<Program>> run(Program program, _) async { 196 Future<Result<Program>> run(Program program, _) async {
197 StringBuffer sb = new StringBuffer(); 197 StringBuffer sb = new StringBuffer();
198 for (Library library in program.libraries) { 198 for (Library library in program.libraries) {
199 Printer printer = new Printer(sb); 199 Printer printer = new Printer(sb);
200 if (library.importUri.scheme != "dart" && 200 if (library.importUri.scheme != "dart" &&
201 library.importUri.scheme != "package") { 201 library.importUri.scheme != "package") {
202 printer.writeLibraryFile(library); 202 printer.writeLibraryFile(library);
203 } 203 }
204 } 204 }
205 print("$sb"); 205 print("$sb");
206 return pass(program); 206 return pass(program);
207 } 207 }
208 } 208 }
209 209
210 class Verify extends Step<Program, Program, dynamic> { 210 class Verify extends Step<Program, Program, TestContext> {
211 final bool fullCompile; 211 final bool fullCompile;
212 212
213 const Verify(this.fullCompile); 213 const Verify(this.fullCompile);
214 214
215 String get name => "verify"; 215 String get name => "verify";
216 216
217 Future<Result<Program>> run(Program program, TestContext testContext) async { 217 Future<Result<Program>> run(Program program, TestContext testContext) async {
218 try { 218 try {
219 program.accept(new VerifyingVisitor()..isOutline = !fullCompile); 219 program.accept(new VerifyingVisitor()..isOutline = !fullCompile);
220 return pass(program); 220 return pass(program);
221 } catch (e, s) { 221 } catch (e, s) {
222 return new Result<Program>( 222 return new Result<Program>(
223 null, testContext.expectationSet["VerificationError"], e, s); 223 null, testContext.expectationSet["VerificationError"], e, s);
224 } 224 }
225 } 225 }
226 } 226 }
227 227
228 class MatchExpectation extends Step<Program, Program, dynamic> { 228 class MatchExpectation extends Step<Program, Program, TestContext> {
229 final String suffix; 229 final String suffix;
230 230
231 // TODO(ahe): This is true by default which doesn't match well with the class 231 // TODO(ahe): This is true by default which doesn't match well with the class
232 // name. 232 // name.
233 final bool updateExpectations; 233 final bool updateExpectations;
234 234
235 const MatchExpectation(this.suffix, {this.updateExpectations: true}); 235 const MatchExpectation(this.suffix, {this.updateExpectations: true});
236 236
237 String get name => "match expectations"; 237 String get name => "match expectations";
238 238
(...skipping 28 matching lines...) Expand all
267 }); 267 });
268 return pass(program); 268 return pass(program);
269 } else { 269 } else {
270 return fail(program, """ 270 return fail(program, """
271 Please create file ${expectedFile.path} with this content: 271 Please create file ${expectedFile.path} with this content:
272 $buffer"""); 272 $buffer""");
273 } 273 }
274 } 274 }
275 } 275 }
276 276
277 class WriteDill extends Step<Program, Uri, dynamic> { 277 class WriteDill extends Step<Program, Uri, TestContext> {
278 const WriteDill(); 278 const WriteDill();
279 279
280 String get name => "write .dill"; 280 String get name => "write .dill";
281 281
282 Future<Result<Uri>> run(Program program, _) async { 282 Future<Result<Uri>> run(Program program, _) async {
283 Directory tmp = await Directory.systemTemp.createTemp(); 283 Directory tmp = await Directory.systemTemp.createTemp();
284 Uri uri = tmp.uri.resolve("generated.dill"); 284 Uri uri = tmp.uri.resolve("generated.dill");
285 File generated = new File.fromUri(uri); 285 File generated = new File.fromUri(uri);
286 IOSink sink = generated.openWrite(); 286 IOSink sink = generated.openWrite();
287 try { 287 try {
288 new BinaryPrinter(sink).writeProgramFile(program); 288 new BinaryPrinter(sink).writeProgramFile(program);
289 } catch (e, s) { 289 } catch (e, s) {
290 return fail(uri, e, s); 290 return fail(uri, e, s);
291 } finally { 291 } finally {
292 print("Wrote `${generated.path}`"); 292 print("Wrote `${generated.path}`");
293 await sink.close(); 293 await sink.close();
294 } 294 }
295 return pass(uri); 295 return pass(uri);
296 } 296 }
297 } 297 }
298 298
299 class ReadDill extends Step<Uri, Uri, dynamic> { 299 class ReadDill extends Step<Uri, Uri, TestContext> {
300 const ReadDill(); 300 const ReadDill();
301 301
302 String get name => "read .dill"; 302 String get name => "read .dill";
303 303
304 Future<Result<Uri>> run(Uri uri, _) async { 304 Future<Result<Uri>> run(Uri uri, _) async {
305 try { 305 try {
306 loadProgramFromBinary(uri.toFilePath()); 306 loadProgramFromBinary(uri.toFilePath());
307 } catch (e, s) { 307 } catch (e, s) {
308 return fail(uri, e, s); 308 return fail(uri, e, s);
309 } 309 }
310 return pass(uri); 310 return pass(uri);
311 } 311 }
312 } 312 }
313 313
314 class Copy extends Step<Program, Program, dynamic> { 314 class Copy extends Step<Program, Program, TestContext> {
315 const Copy(); 315 const Copy();
316 316
317 String get name => "copy program"; 317 String get name => "copy program";
318 318
319 Future<Result<Program>> run(Program program, _) async { 319 Future<Result<Program>> run(Program program, _) async {
320 BytesCollector sink = new BytesCollector(); 320 BytesCollector sink = new BytesCollector();
321 new BinaryPrinter(sink).writeProgramFile(program); 321 new BinaryPrinter(sink).writeProgramFile(program);
322 Uint8List bytes = sink.collect(); 322 Uint8List bytes = sink.collect();
323 BinaryLoader loader = new BinaryLoader(new Repository()); 323 BinaryLoader loader = new BinaryLoader(new Repository());
324 return pass(new BinaryBuilder(loader, bytes).readProgramFile()); 324 return pass(new BinaryBuilder(loader, bytes).readProgramFile());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
381 381
382 Future openWrite(Uri uri, f(IOSink sink)) async { 382 Future openWrite(Uri uri, f(IOSink sink)) async {
383 IOSink sink = new File.fromUri(uri).openWrite(); 383 IOSink sink = new File.fromUri(uri).openWrite();
384 try { 384 try {
385 await f(sink); 385 await f(sink);
386 } finally { 386 } finally {
387 await sink.close(); 387 await sink.close();
388 } 388 }
389 print("Wrote $uri"); 389 print("Wrote $uri");
390 } 390 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698