OLD | NEW |
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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 js_backend.backend.impact_transformer; | 5 library js_backend.backend.impact_transformer; |
6 | 6 |
7 import '../common.dart'; | 7 import '../common.dart'; |
8 import '../common_elements.dart'; | 8 import '../common_elements.dart'; |
9 import '../common/backend_api.dart' show ImpactTransformer; | 9 import '../common/backend_api.dart' show ImpactTransformer; |
10 import '../common/codegen.dart' show CodegenImpact; | 10 import '../common/codegen.dart' show CodegenImpact; |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
356 this._backendUsage, | 356 this._backendUsage, |
357 this._rtiNeed, | 357 this._rtiNeed, |
358 this._nativeCodegenEnqueuer, | 358 this._nativeCodegenEnqueuer, |
359 this._namer, | 359 this._namer, |
360 this._oneShotInterceptorData, | 360 this._oneShotInterceptorData, |
361 this._lookupMapAnalysis, | 361 this._lookupMapAnalysis, |
362 this._rtiChecksBuilder); | 362 this._rtiChecksBuilder); |
363 | 363 |
364 void onIsCheckForCodegen(DartType type, TransformedWorldImpact transformed) { | 364 void onIsCheckForCodegen(DartType type, TransformedWorldImpact transformed) { |
365 if (type.isDynamic) return; | 365 if (type.isDynamic) return; |
| 366 if (type.isVoid) return; |
366 type = type.unaliased; | 367 type = type.unaliased; |
367 _impacts.typeCheck.registerImpact(transformed, _elementEnvironment); | 368 _impacts.typeCheck.registerImpact(transformed, _elementEnvironment); |
368 | 369 |
369 bool inCheckedMode = _options.enableTypeAssertions; | 370 bool inCheckedMode = _options.enableTypeAssertions; |
370 // [registerIsCheck] is also called for checked mode checks, so we | 371 // [registerIsCheck] is also called for checked mode checks, so we |
371 // need to register checked mode helpers. | 372 // need to register checked mode helpers. |
372 if (inCheckedMode) { | 373 if (inCheckedMode) { |
373 // All helpers are added to resolution queue in enqueueHelpers. These | 374 // All helpers are added to resolution queue in enqueueHelpers. These |
374 // calls to [enqueue] with the resolution enqueuer serve as assertions | 375 // calls to [enqueue] with the resolution enqueuer serve as assertions |
375 // that the helper was in fact added. | 376 // that the helper was in fact added. |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
466 _impacts.asyncStarBody | 467 _impacts.asyncStarBody |
467 .registerImpact(transformed, _elementEnvironment); | 468 .registerImpact(transformed, _elementEnvironment); |
468 break; | 469 break; |
469 } | 470 } |
470 } | 471 } |
471 | 472 |
472 // TODO(johnniwinther): Remove eager registration. | 473 // TODO(johnniwinther): Remove eager registration. |
473 return transformed; | 474 return transformed; |
474 } | 475 } |
475 } | 476 } |
OLD | NEW |