| 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 import 'package:kernel/ast.dart' as ir; | 5 import 'package:kernel/ast.dart' as ir; |
| 6 | 6 |
| 7 import '../../compiler_new.dart'; | 7 import '../../compiler_new.dart'; |
| 8 import '../closure.dart'; | 8 import '../closure.dart'; |
| 9 import '../common.dart'; | 9 import '../common.dart'; |
| 10 import '../common_elements.dart'; | 10 import '../common_elements.dart'; |
| (...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 198 | 198 |
| 199 @override | 199 @override |
| 200 int computeMemberSize(MemberEntity member) { | 200 int computeMemberSize(MemberEntity member) { |
| 201 // TODO(johnniwinther): Find an ordering that can be shared between the | 201 // TODO(johnniwinther): Find an ordering that can be shared between the |
| 202 // front ends. | 202 // front ends. |
| 203 return 0; | 203 return 0; |
| 204 } | 204 } |
| 205 | 205 |
| 206 @override | 206 @override |
| 207 GlobalTypeInferenceElementData<ir.Node> createElementData() { | 207 GlobalTypeInferenceElementData<ir.Node> createElementData() { |
| 208 throw new UnimplementedError('KernelInferrerEngine.createElementData'); | 208 return new KernelGlobalTypeInferenceElementData(); |
| 209 } | 209 } |
| 210 } | 210 } |
| 211 | 211 |
| 212 class KernelTypeSystemStrategy implements TypeSystemStrategy<ir.Node> { | 212 class KernelTypeSystemStrategy implements TypeSystemStrategy<ir.Node> { |
| 213 KernelToElementMapForBuilding _elementMap; | 213 KernelToElementMapForBuilding _elementMap; |
| 214 GlobalLocalsMap _globalLocalsMap; | 214 GlobalLocalsMap _globalLocalsMap; |
| 215 ClosureDataLookup<ir.Node> _closureDataLookup; | 215 ClosureDataLookup<ir.Node> _closureDataLookup; |
| 216 | 216 |
| 217 KernelTypeSystemStrategy( | 217 KernelTypeSystemStrategy( |
| 218 this._elementMap, this._globalLocalsMap, this._closureDataLookup); | 218 this._elementMap, this._globalLocalsMap, this._closureDataLookup); |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 ConstructorEntity constructor = member; | 336 ConstructorEntity constructor = member; |
| 337 if (constructor.isFactoryConstructor) { | 337 if (constructor.isFactoryConstructor) { |
| 338 DartType type = _elementEnvironment.getFunctionType(constructor); | 338 DartType type = _elementEnvironment.getFunctionType(constructor); |
| 339 return new FactoryConstructorTypeInformation(constructor, type); | 339 return new FactoryConstructorTypeInformation(constructor, type); |
| 340 } else { | 340 } else { |
| 341 return new GenerativeConstructorTypeInformation(constructor); | 341 return new GenerativeConstructorTypeInformation(constructor); |
| 342 } | 342 } |
| 343 } | 343 } |
| 344 } | 344 } |
| 345 } | 345 } |
| 346 |
| 347 class KernelGlobalTypeInferenceElementData |
| 348 extends GlobalTypeInferenceElementData<ir.Node> { |
| 349 // TODO(johnniwinther): Rename this together with [typeOfSend]. |
| 350 Map<ir.Node, TypeMask> _sendMap; |
| 351 |
| 352 @override |
| 353 TypeMask typeOfSend(ir.Node node) { |
| 354 if (_sendMap == null) return null; |
| 355 return _sendMap[node]; |
| 356 } |
| 357 |
| 358 @override |
| 359 void setCurrentTypeMask(ir.Node node, TypeMask mask) { |
| 360 throw new UnsupportedError( |
| 361 'KernelGlobalTypeInferenceElementData.setCurrentTypeMask'); |
| 362 } |
| 363 |
| 364 @override |
| 365 void setMoveNextTypeMask(ir.Node node, TypeMask mask) { |
| 366 throw new UnsupportedError( |
| 367 'KernelGlobalTypeInferenceElementData.setMoveNextTypeMask'); |
| 368 } |
| 369 |
| 370 @override |
| 371 void setIteratorTypeMask(ir.Node node, TypeMask mask) { |
| 372 throw new UnsupportedError( |
| 373 'KernelGlobalTypeInferenceElementData.setIteratorTypeMask'); |
| 374 } |
| 375 |
| 376 @override |
| 377 TypeMask typeOfIteratorCurrent(ir.Node node) { |
| 378 throw new UnsupportedError( |
| 379 'KernelGlobalTypeInferenceElementData.typeOfIteratorCurrent'); |
| 380 } |
| 381 |
| 382 @override |
| 383 TypeMask typeOfIteratorMoveNext(ir.Node node) { |
| 384 throw new UnsupportedError( |
| 385 'KernelGlobalTypeInferenceElementData.typeOfIteratorMoveNext'); |
| 386 } |
| 387 |
| 388 @override |
| 389 TypeMask typeOfIterator(ir.Node node) { |
| 390 throw new UnsupportedError( |
| 391 'KernelGlobalTypeInferenceElementData.typeOfIterator'); |
| 392 } |
| 393 |
| 394 @override |
| 395 void setOperatorTypeMaskInComplexSendSet(ir.Node node, TypeMask mask) { |
| 396 throw new UnsupportedError( |
| 397 'KernelGlobalTypeInferenceElementData.setOperatorTypeMaskInComplexSendSe
t'); |
| 398 } |
| 399 |
| 400 @override |
| 401 void setGetterTypeMaskInComplexSendSet(ir.Node node, TypeMask mask) { |
| 402 throw new UnsupportedError( |
| 403 'KernelGlobalTypeInferenceElementData.setGetterTypeMaskInComplexSendSet'
); |
| 404 } |
| 405 |
| 406 @override |
| 407 void setTypeMask(ir.Node node, TypeMask mask) { |
| 408 _sendMap ??= <ir.Node, TypeMask>{}; |
| 409 _sendMap[node] = mask; |
| 410 } |
| 411 |
| 412 @override |
| 413 TypeMask typeOfOperator(ir.Node node) { |
| 414 throw new UnsupportedError( |
| 415 'KernelGlobalTypeInferenceElementData.typeOfOperator'); |
| 416 } |
| 417 |
| 418 @override |
| 419 TypeMask typeOfGetter(ir.Node node) { |
| 420 throw new UnsupportedError( |
| 421 'KernelGlobalTypeInferenceElementData.typeOfGetter'); |
| 422 } |
| 423 } |
| OLD | NEW |