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 var enclosingFunctionName = executableContext.name; |
| 822 reportTypeWarning(node, MessageKind.AWAIT_MEMBER_NOT_FOUND, |
| 823 {'className': receiverType.name, |
| 824 'enclosingFunctionText': enclosingFunctionName == '' |
| 825 ? 'the enclosing function' |
| 826 : "'$enclosingFunctionName'" |
| 827 }); |
820 } else { | 828 } else { |
821 reportTypeWarning(node, MessageKind.MEMBER_NOT_FOUND, | 829 reportTypeWarning(node, MessageKind.MEMBER_NOT_FOUND, |
822 {'className': receiverType.name, 'memberName': name}); | 830 {'className': receiverType.name, 'memberName': name}); |
823 } | 831 } |
824 break; | 832 break; |
825 case MemberKind.SETTER: | 833 case MemberKind.SETTER: |
826 reportTypeWarning(node, MessageKind.SETTER_NOT_FOUND, | 834 reportTypeWarning(node, MessageKind.SETTER_NOT_FOUND, |
827 {'className': receiverType.name, 'memberName': name}); | 835 {'className': receiverType.name, 'memberName': name}); |
828 break; | 836 break; |
829 } | 837 } |
(...skipping 1017 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1847 | 1855 |
1848 visitTypedef(Typedef node) { | 1856 visitTypedef(Typedef node) { |
1849 // Do not typecheck [Typedef] nodes. | 1857 // Do not typecheck [Typedef] nodes. |
1850 } | 1858 } |
1851 | 1859 |
1852 visitNode(Node node) { | 1860 visitNode(Node node) { |
1853 compiler.internalError(node, | 1861 compiler.internalError(node, |
1854 'Unexpected node ${node.getObjectDescription()} in the type checker.'); | 1862 'Unexpected node ${node.getObjectDescription()} in the type checker.'); |
1855 } | 1863 } |
1856 } | 1864 } |
OLD | NEW |