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

Side by Side Diff: pkg/dev_compiler/lib/src/compiler/compiler.dart

Issue 2954523002: fix #27259, implement covariance checking for strong mode and DDC (Closed)
Patch Set: merged and fix an analysis error Created 3 years, 5 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 import 'dart:collection' show HashSet, Queue; 5 import 'dart:collection' show HashSet, Queue;
6 import 'dart:convert' show JSON; 6 import 'dart:convert' show JSON;
7 import 'dart:io' show File; 7 import 'dart:io' show File;
8 8
9 import 'package:analyzer/analyzer.dart' 9 import 'package:analyzer/analyzer.dart'
10 show AnalysisError, CompilationUnit, ErrorSeverity; 10 show AnalysisError, CompilationUnit, ErrorSeverity;
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 /// Whether to force compilation of code with static errors. 260 /// Whether to force compilation of code with static errors.
261 final bool unsafeForceCompile; 261 final bool unsafeForceCompile;
262 262
263 /// Whether to compile code in a more permissive REPL mode allowing access 263 /// Whether to compile code in a more permissive REPL mode allowing access
264 /// to private members across library boundaries. 264 /// to private members across library boundaries.
265 final bool replCompile; 265 final bool replCompile;
266 266
267 /// Whether to emit Closure Compiler-friendly code. 267 /// Whether to emit Closure Compiler-friendly code.
268 final bool closure; 268 final bool closure;
269 269
270 /// Hoist the types at instance creation sites.
271 final bool hoistInstanceCreation;
272
273 /// Hoist types from class signatures.
274 final bool hoistSignatureTypes;
275
276 /// Name types in type tests.
277 final bool nameTypeTests;
278
279 /// Hoist types in type tests.
280 final bool hoistTypeTests;
281
282 /// Enable ES6 destructuring of named parameters. Off by default. 270 /// Enable ES6 destructuring of named parameters. Off by default.
283 /// 271 ///
284 /// Older V8 versions do not accept default values with destructuring in 272 /// Older V8 versions do not accept default values with destructuring in
285 /// arrow functions yet (e.g. `({a} = {}) => 1`) but happily accepts them 273 /// arrow functions yet (e.g. `({a} = {}) => 1`) but happily accepts them
286 /// with regular functions (e.g. `function({a} = {}) { return 1 }`). 274 /// with regular functions (e.g. `function({a} = {}) { return 1 }`).
287 /// 275 ///
288 /// Supporting the syntax: 276 /// Supporting the syntax:
289 /// * Chrome Canary (51) 277 /// * Chrome Canary (51)
290 /// * Firefox 278 /// * Firefox
291 /// 279 ///
(...skipping 15 matching lines...) Expand all
307 {this.sourceMap: true, 295 {this.sourceMap: true,
308 this.sourceMapComment: true, 296 this.sourceMapComment: true,
309 this.inlineSourceMap: false, 297 this.inlineSourceMap: false,
310 this.summarizeApi: true, 298 this.summarizeApi: true,
311 this.summaryExtension: 'sum', 299 this.summaryExtension: 'sum',
312 this.unsafeForceCompile: false, 300 this.unsafeForceCompile: false,
313 this.replCompile: false, 301 this.replCompile: false,
314 this.emitMetadata: false, 302 this.emitMetadata: false,
315 this.closure: false, 303 this.closure: false,
316 this.destructureNamedParams: false, 304 this.destructureNamedParams: false,
317 this.hoistInstanceCreation: true,
318 this.hoistSignatureTypes: false,
319 this.nameTypeTests: true,
320 this.hoistTypeTests: true,
321 this.bazelMapping: const {}, 305 this.bazelMapping: const {},
322 this.summaryOutPath}); 306 this.summaryOutPath});
323 307
324 CompilerOptions.fromArguments(ArgResults args) 308 CompilerOptions.fromArguments(ArgResults args)
325 : sourceMap = args['source-map'], 309 : sourceMap = args['source-map'],
326 sourceMapComment = args['source-map-comment'], 310 sourceMapComment = args['source-map-comment'],
327 inlineSourceMap = args['inline-source-map'], 311 inlineSourceMap = args['inline-source-map'],
328 summarizeApi = args['summarize'], 312 summarizeApi = args['summarize'],
329 summaryExtension = args['summary-extension'], 313 summaryExtension = args['summary-extension'],
330 unsafeForceCompile = args['unsafe-force-compile'], 314 unsafeForceCompile = args['unsafe-force-compile'],
331 replCompile = args['repl-compile'], 315 replCompile = args['repl-compile'],
332 emitMetadata = args['emit-metadata'], 316 emitMetadata = args['emit-metadata'],
333 closure = args['closure-experimental'], 317 closure = args['closure-experimental'],
334 destructureNamedParams = args['destructure-named-params'], 318 destructureNamedParams = args['destructure-named-params'],
335 hoistInstanceCreation = args['hoist-instance-creation'],
336 hoistSignatureTypes = args['hoist-signature-types'],
337 nameTypeTests = args['name-type-tests'],
338 hoistTypeTests = args['hoist-type-tests'],
339 bazelMapping = _parseBazelMappings(args['bazel-mapping']), 319 bazelMapping = _parseBazelMappings(args['bazel-mapping']),
340 summaryOutPath = args['summary-out']; 320 summaryOutPath = args['summary-out'];
341 321
342 static void addArguments(ArgParser parser, {bool hide: true}) { 322 static void addArguments(ArgParser parser, {bool hide: true}) {
343 parser 323 parser
344 ..addFlag('summarize', help: 'emit an API summary file', defaultsTo: true) 324 ..addFlag('summarize', help: 'emit an API summary file', defaultsTo: true)
345 ..addOption('summary-extension', 325 ..addOption('summary-extension',
346 help: 'file extension for Dart summary files', 326 help: 'file extension for Dart summary files',
347 defaultsTo: 'sum', 327 defaultsTo: 'sum',
348 hide: hide) 328 hide: hide)
(...skipping 16 matching lines...) Expand all
365 ..addFlag('unsafe-force-compile', 345 ..addFlag('unsafe-force-compile',
366 help: 'Compile code even if it has errors. ಠ_ಠ\n' 346 help: 'Compile code even if it has errors. ಠ_ಠ\n'
367 'This has undefined behavior!', 347 'This has undefined behavior!',
368 defaultsTo: false, 348 defaultsTo: false,
369 hide: hide) 349 hide: hide)
370 ..addFlag('repl-compile', 350 ..addFlag('repl-compile',
371 help: 'Compile code more permissively when in REPL mode\n' 351 help: 'Compile code more permissively when in REPL mode\n'
372 'allowing access to private members across library boundaries.', 352 'allowing access to private members across library boundaries.',
373 defaultsTo: false, 353 defaultsTo: false,
374 hide: hide) 354 hide: hide)
375 ..addFlag('hoist-instance-creation',
376 help: 'Hoist the class type from generic instance creations',
377 defaultsTo: true,
378 hide: hide)
379 ..addFlag('hoist-signature-types',
380 help: 'Hoist types from class signatures',
381 defaultsTo: false,
382 hide: hide)
383 ..addFlag('name-type-tests',
384 help: 'Name types used in type tests', defaultsTo: true, hide: hide)
385 ..addFlag('hoist-type-tests',
386 help: 'Hoist types used in type tests', defaultsTo: true, hide: hide)
387 ..addOption('bazel-mapping', 355 ..addOption('bazel-mapping',
388 help: 356 help:
389 '--bazel-mapping=genfiles/to/library.dart,to/library.dart uses \n' 357 '--bazel-mapping=genfiles/to/library.dart,to/library.dart uses \n'
390 'to/library.dart as the path for library.dart in source maps.', 358 'to/library.dart as the path for library.dart in source maps.',
391 allowMultiple: true, 359 allowMultiple: true,
392 splitCommas: false, 360 splitCommas: false,
393 hide: hide) 361 hide: hide)
394 ..addOption('summary-out', 362 ..addOption('summary-out',
395 help: 'location to write the summary file', hide: hide); 363 help: 'location to write the summary file', hide: hide);
396 } 364 }
(...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after
627 case "dart": 595 case "dart":
628 case "package": 596 case "package":
629 case "file": 597 case "file":
630 // A valid URI. 598 // A valid URI.
631 return uri; 599 return uri;
632 default: 600 default:
633 // Assume a file path. 601 // Assume a file path.
634 return new Uri.file(path.absolute(source)); 602 return new Uri.file(path.absolute(source));
635 } 603 }
636 } 604 }
OLDNEW
« no previous file with comments | « pkg/dev_compiler/lib/src/compiler/code_generator.dart ('k') | pkg/dev_compiler/lib/src/compiler/property_model.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698