OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 part of dart2js; | 5 part of dart2js; |
6 | 6 |
7 class TypeCheckerTask extends CompilerTask { | 7 class TypeCheckerTask extends CompilerTask { |
8 TypeCheckerTask(Compiler compiler) : super(compiler); | 8 TypeCheckerTask(Compiler compiler) : super(compiler); |
9 String get name => "Type checker"; | 9 String get name => "Type checker"; |
10 | 10 |
(...skipping 799 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
810 case MemberKind.OPERATOR: | 810 case MemberKind.OPERATOR: |
811 reportTypeWarning(node, MessageKind.OPERATOR_NOT_FOUND, | 811 reportTypeWarning(node, MessageKind.OPERATOR_NOT_FOUND, |
812 {'className': receiverType.name, 'memberName': name}); | 812 {'className': receiverType.name, 'memberName': name}); |
813 break; | 813 break; |
814 case MemberKind.GETTER: | 814 case MemberKind.GETTER: |
815 if (lookupMemberSignature(memberName.setter, interface) != null) { | 815 if (lookupMemberSignature(memberName.setter, interface) != null) { |
816 // A setter is present so warn explicitly about the missing | 816 // A setter is present so warn explicitly about the missing |
817 // getter. | 817 // getter. |
818 reportTypeWarning(node, MessageKind.GETTER_NOT_FOUND, | 818 reportTypeWarning(node, MessageKind.GETTER_NOT_FOUND, |
819 {'className': receiverType.name, 'memberName': name}); | 819 {'className': receiverType.name, 'memberName': name}); |
| 820 } else if (name == 'await') { |
| 821 Map arguments = {'className': receiverType.name}; |
| 822 String functionName = executableContext.name; |
| 823 MessageKind kind; |
| 824 if (functionName == '') { |
| 825 kind = MessageKind.AWAIT_MEMBER_NOT_FOUND_IN_CLOSURE; |
| 826 } else { |
| 827 kind = MessageKind.AWAIT_MEMBER_NOT_FOUND; |
| 828 arguments['functionName'] = functionName; |
| 829 } |
| 830 reportTypeWarning(node, kind, arguments); |
820 } else { | 831 } else { |
821 reportTypeWarning(node, MessageKind.MEMBER_NOT_FOUND, | 832 reportTypeWarning(node, MessageKind.MEMBER_NOT_FOUND, |
822 {'className': receiverType.name, 'memberName': name}); | 833 {'className': receiverType.name, 'memberName': name}); |
823 } | 834 } |
824 break; | 835 break; |
825 case MemberKind.SETTER: | 836 case MemberKind.SETTER: |
826 reportTypeWarning(node, MessageKind.SETTER_NOT_FOUND, | 837 reportTypeWarning(node, MessageKind.SETTER_NOT_FOUND, |
827 {'className': receiverType.name, 'memberName': name}); | 838 {'className': receiverType.name, 'memberName': name}); |
828 break; | 839 break; |
829 } | 840 } |
(...skipping 1017 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1847 | 1858 |
1848 visitTypedef(Typedef node) { | 1859 visitTypedef(Typedef node) { |
1849 // Do not typecheck [Typedef] nodes. | 1860 // Do not typecheck [Typedef] nodes. |
1850 } | 1861 } |
1851 | 1862 |
1852 visitNode(Node node) { | 1863 visitNode(Node node) { |
1853 compiler.internalError(node, | 1864 compiler.internalError(node, |
1854 'Unexpected node ${node.getObjectDescription()} in the type checker.'); | 1865 'Unexpected node ${node.getObjectDescription()} in the type checker.'); |
1855 } | 1866 } |
1856 } | 1867 } |
OLD | NEW |