| 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 310 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 if (isPostIncDec) parts.add('isPostIncDec=true'); | 321 if (isPostIncDec) parts.add('isPostIncDec=true'); |
| 322 if (isPreIncDec) parts.add('isPreIncDec=true'); | 322 if (isPreIncDec) parts.add('isPreIncDec=true'); |
| 323 return parts; | 323 return parts; |
| 324 } | 324 } |
| 325 | 325 |
| 326 DartType _inferRhs(KernelTypeInferrer inferrer, DartType writeContext) { | 326 DartType _inferRhs(KernelTypeInferrer inferrer, DartType writeContext) { |
| 327 DartType inferredType = writeContext ?? const DynamicType(); | 327 DartType inferredType = writeContext ?? const DynamicType(); |
| 328 if (nullAwareCombiner != null) { | 328 if (nullAwareCombiner != null) { |
| 329 var rhsType = inferrer.inferExpression(rhs, writeContext, true); | 329 var rhsType = inferrer.inferExpression(rhs, writeContext, true); |
| 330 MethodInvocation equalsInvocation = nullAwareCombiner.condition; | 330 MethodInvocation equalsInvocation = nullAwareCombiner.condition; |
| 331 inferrer.findMethodInvocationMember(writeContext, equalsInvocation); | 331 inferrer.findMethodInvocationMember(writeContext, equalsInvocation, |
| 332 silent: true); |
| 332 return inferrer.typeSchemaEnvironment | 333 return inferrer.typeSchemaEnvironment |
| 333 .getLeastUpperBound(inferredType, rhsType); | 334 .getLeastUpperBound(inferredType, rhsType); |
| 334 } else if (combiner != null) { | 335 } else if (combiner != null) { |
| 335 bool isOverloadedArithmeticOperator = false; | 336 bool isOverloadedArithmeticOperator = false; |
| 336 var combinerMember = inferrer | 337 var combinerMember = inferrer |
| 337 .findMethodInvocationMember(writeContext, combiner, silent: true); | 338 .findMethodInvocationMember(writeContext, combiner, silent: true); |
| 338 if (combinerMember is Procedure) { | 339 if (combinerMember is Procedure) { |
| 339 isOverloadedArithmeticOperator = inferrer.typeSchemaEnvironment | 340 isOverloadedArithmeticOperator = inferrer.typeSchemaEnvironment |
| 340 .isOverloadedArithmeticOperator(combinerMember); | 341 .isOverloadedArithmeticOperator(combinerMember); |
| 341 } | 342 } |
| (...skipping 1851 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2193 } | 2194 } |
| 2194 | 2195 |
| 2195 transformChildren(v) { | 2196 transformChildren(v) { |
| 2196 return internalError("Internal error: Unsupported operation."); | 2197 return internalError("Internal error: Unsupported operation."); |
| 2197 } | 2198 } |
| 2198 | 2199 |
| 2199 visitChildren(v) { | 2200 visitChildren(v) { |
| 2200 return internalError("Internal error: Unsupported operation."); | 2201 return internalError("Internal error: Unsupported operation."); |
| 2201 } | 2202 } |
| 2202 } | 2203 } |
| OLD | NEW |