| 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 1056 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1067 : super(left, operator, right); | 1067 : super(left, operator, right); |
| 1068 | 1068 |
| 1069 @override | 1069 @override |
| 1070 void _collectDependencies(KernelDependencyCollector collector) { | 1070 void _collectDependencies(KernelDependencyCollector collector) { |
| 1071 // No inference dependencies. | 1071 // No inference dependencies. |
| 1072 } | 1072 } |
| 1073 | 1073 |
| 1074 @override | 1074 @override |
| 1075 DartType _inferExpression( | 1075 DartType _inferExpression( |
| 1076 KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { | 1076 KernelTypeInferrer inferrer, DartType typeContext, bool typeNeeded) { |
| 1077 // TODO(scheglov): implement. | 1077 typeNeeded = inferrer.listener.logicalExpressionEnter(this, typeContext) || |
| 1078 return typeNeeded ? const DynamicType() : null; | 1078 typeNeeded; |
| 1079 var boolType = inferrer.coreTypes.boolClass.rawType; |
| 1080 inferrer.inferExpression(left, boolType, false); |
| 1081 inferrer.inferExpression(right, boolType, false); |
| 1082 var inferredType = typeNeeded ? boolType : null; |
| 1083 inferrer.listener.logicalExpressionExit(this, inferredType); |
| 1084 return inferredType; |
| 1079 } | 1085 } |
| 1080 } | 1086 } |
| 1081 | 1087 |
| 1082 /// Shadow object for [MapLiteral]. | 1088 /// Shadow object for [MapLiteral]. |
| 1083 class KernelMapLiteral extends MapLiteral implements KernelExpression { | 1089 class KernelMapLiteral extends MapLiteral implements KernelExpression { |
| 1084 final DartType _declaredKeyType; | 1090 final DartType _declaredKeyType; |
| 1085 final DartType _declaredValueType; | 1091 final DartType _declaredValueType; |
| 1086 | 1092 |
| 1087 KernelMapLiteral(List<MapEntry> entries, | 1093 KernelMapLiteral(List<MapEntry> entries, |
| 1088 {DartType keyType, DartType valueType, bool isConst: false}) | 1094 {DartType keyType, DartType valueType, bool isConst: false}) |
| (...skipping 1147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2236 } | 2242 } |
| 2237 | 2243 |
| 2238 transformChildren(v) { | 2244 transformChildren(v) { |
| 2239 return internalError("Internal error: Unsupported operation."); | 2245 return internalError("Internal error: Unsupported operation."); |
| 2240 } | 2246 } |
| 2241 | 2247 |
| 2242 visitChildren(v) { | 2248 visitChildren(v) { |
| 2243 return internalError("Internal error: Unsupported operation."); | 2249 return internalError("Internal error: Unsupported operation."); |
| 2244 } | 2250 } |
| 2245 } | 2251 } |
| OLD | NEW |