| 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 /// This file declares a "shadow hierarchy" of concrete classes which extend | 5 /// This file declares a "shadow hierarchy" of concrete classes which extend |
| 6 /// the kernel class hierarchy, adding methods and fields needed by the | 6 /// the kernel class hierarchy, adding methods and fields needed by the |
| 7 /// BodyBuilder. | 7 /// BodyBuilder. |
| 8 /// | 8 /// |
| 9 /// Instances of these classes may be created using the factory methods in | 9 /// Instances of these classes may be created using the factory methods in |
| 10 /// `ast_factory.dart`. | 10 /// `ast_factory.dart`. |
| (...skipping 499 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 510 @override | 510 @override |
| 511 DartType _inferExpression( | 511 DartType _inferExpression( |
| 512 KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { | 512 KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { |
| 513 // TODO(scheglov): implement. | 513 // TODO(scheglov): implement. |
| 514 return typeNeeded ? const DynamicType() : null; | 514 return typeNeeded ? const DynamicType() : null; |
| 515 } | 515 } |
| 516 } | 516 } |
| 517 | 517 |
| 518 /// Concrete shadow object representing a return statement in kernel form. | 518 /// Concrete shadow object representing a return statement in kernel form. |
| 519 class KernelReturnStatement extends ReturnStatement implements KernelStatement { | 519 class KernelReturnStatement extends ReturnStatement implements KernelStatement { |
| 520 KernelReturnStatement([KernelExpression expression]) : super(expression); | 520 KernelReturnStatement([Expression expression]) : super(expression); |
| 521 | 521 |
| 522 @override | 522 @override |
| 523 void _inferStatement(KernelTypeInferrer inferrer) { | 523 void _inferStatement(KernelTypeInferrer inferrer) { |
| 524 // TODO(paulberry): implement. | 524 inferrer.inferReturnStatement(expression); |
| 525 } | 525 } |
| 526 } | 526 } |
| 527 | 527 |
| 528 /// Common base class for shadow objects representing statements in kernel | 528 /// Common base class for shadow objects representing statements in kernel |
| 529 /// form. | 529 /// form. |
| 530 abstract class KernelStatement extends Statement { | 530 abstract class KernelStatement extends Statement { |
| 531 /// Calls back to [inferrer] to perform type inference for whatever concrete | 531 /// Calls back to [inferrer] to perform type inference for whatever concrete |
| 532 /// type of [KernelStatement] this is. | 532 /// type of [KernelStatement] this is. |
| 533 void _inferStatement(KernelTypeInferrer inferrer); | 533 void _inferStatement(KernelTypeInferrer inferrer); |
| 534 } | 534 } |
| (...skipping 453 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 988 : super(variable, value); | 988 : super(variable, value); |
| 989 | 989 |
| 990 @override | 990 @override |
| 991 DartType _inferExpression( | 991 DartType _inferExpression( |
| 992 KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { | 992 KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { |
| 993 var variable = this.variable as KernelVariableDeclaration; | 993 var variable = this.variable as KernelVariableDeclaration; |
| 994 return inferrer.inferVariableSet( | 994 return inferrer.inferVariableSet( |
| 995 typeContext, typeNeeded, variable._declaredType, value); | 995 typeContext, typeNeeded, variable._declaredType, value); |
| 996 } | 996 } |
| 997 } | 997 } |
| OLD | NEW |