OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 library kernel.type_checker; | 4 library kernel.type_checker; |
5 | 5 |
6 import 'ast.dart'; | 6 import 'ast.dart'; |
7 import 'class_hierarchy.dart'; | 7 import 'class_hierarchy.dart'; |
8 import 'core_types.dart'; | 8 import 'core_types.dart'; |
9 import 'type_algebra.dart'; | 9 import 'type_algebra.dart'; |
10 import 'type_environment.dart'; | 10 import 'type_environment.dart'; |
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
683 DartType visitLoadLibrary(LoadLibrary node) { | 683 DartType visitLoadLibrary(LoadLibrary node) { |
684 return environment.futureType(const DynamicType()); | 684 return environment.futureType(const DynamicType()); |
685 } | 685 } |
686 | 686 |
687 @override | 687 @override |
688 DartType visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) { | 688 DartType visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) { |
689 return environment.objectType; | 689 return environment.objectType; |
690 } | 690 } |
691 | 691 |
692 @override | 692 @override |
| 693 DartType visitVectorCreation(VectorCreation node) { |
| 694 return const VectorType(); |
| 695 } |
| 696 |
| 697 @override |
693 DartType visitVectorGet(VectorGet node) { | 698 DartType visitVectorGet(VectorGet node) { |
694 var type = visitExpression(node.vectorExpression); | 699 var type = visitExpression(node.vectorExpression); |
695 if (type is! VectorType) { | 700 if (type is! VectorType) { |
696 fail( | 701 fail( |
697 node.vectorExpression, | 702 node.vectorExpression, |
698 'The type of vector-expression in vector-get node is expected to be ' | 703 'The type of vector-expression in vector-get node is expected to be ' |
699 'VectorType, but $type found'); | 704 'VectorType, but $type found'); |
700 } | 705 } |
701 return const DynamicType(); | 706 return const DynamicType(); |
702 } | 707 } |
(...skipping 16 matching lines...) Expand all Loading... |
719 if (type is! VectorType) { | 724 if (type is! VectorType) { |
720 fail( | 725 fail( |
721 node.vectorExpression, | 726 node.vectorExpression, |
722 'The type of vector-expression in vector-copy node is exected to be ' | 727 'The type of vector-expression in vector-copy node is exected to be ' |
723 'VectorType, but $type found'); | 728 'VectorType, but $type found'); |
724 } | 729 } |
725 return const VectorType(); | 730 return const VectorType(); |
726 } | 731 } |
727 | 732 |
728 @override | 733 @override |
729 DartType visitVectorCreation(VectorCreation node) { | 734 visitClosureCreation(ClosureCreation node) { |
730 return const VectorType(); | 735 var contextType = visitExpression(node.contextVector); |
| 736 if (contextType is! VectorType) { |
| 737 fail( |
| 738 node.contextVector, |
| 739 "The second child of 'ClosureConversion' node is supposed to be a " |
| 740 "Vector, but $contextType found."); |
| 741 } |
| 742 return node.functionType; |
731 } | 743 } |
732 | 744 |
733 @override | 745 @override |
734 visitAssertStatement(AssertStatement node) { | 746 visitAssertStatement(AssertStatement node) { |
735 visitExpression(node.condition); | 747 visitExpression(node.condition); |
736 if (node.message != null) { | 748 if (node.message != null) { |
737 visitExpression(node.message); | 749 visitExpression(node.message); |
738 } | 750 } |
739 } | 751 } |
740 | 752 |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
943 } | 955 } |
944 | 956 |
945 @override | 957 @override |
946 visitLocalInitializer(LocalInitializer node) { | 958 visitLocalInitializer(LocalInitializer node) { |
947 visitVariableDeclaration(node.variable); | 959 visitVariableDeclaration(node.variable); |
948 } | 960 } |
949 | 961 |
950 @override | 962 @override |
951 visitInvalidInitializer(InvalidInitializer node) {} | 963 visitInvalidInitializer(InvalidInitializer node) {} |
952 } | 964 } |
OLD | NEW |