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 |