OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 library dart2js.parser.element_listener; | 5 library dart2js.parser.element_listener; |
6 | 6 |
7 import '../common.dart'; | 7 import '../common.dart'; |
8 import '../diagnostics/messages.dart' show MessageTemplate; | 8 import '../diagnostics/messages.dart' show MessageTemplate; |
9 import '../elements/elements.dart' | 9 import '../elements/elements.dart' |
10 show Element, LibraryElement, MetadataAnnotation; | 10 show Element, LibraryElement, MetadataAnnotation; |
(...skipping 713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
724 } | 724 } |
725 | 725 |
726 void beginMember(Token token) { | 726 void beginMember(Token token) { |
727 memberErrors = memberErrors.prepend(false); | 727 memberErrors = memberErrors.prepend(false); |
728 } | 728 } |
729 | 729 |
730 void beginTopLevelMember(Token token) { | 730 void beginTopLevelMember(Token token) { |
731 beginMember(token); | 731 beginMember(token); |
732 } | 732 } |
733 | 733 |
734 void endFields(fieldCount, start, token) { | 734 void endMember() { |
735 memberErrors = memberErrors.tail; | 735 memberErrors = memberErrors.tail; |
736 } | 736 } |
737 | 737 |
738 void endMethod(getOrSet, start, token) { | |
739 memberErrors = memberErrors.tail; | |
740 } | |
741 | |
742 void beginFactoryMethod(Token token) { | |
743 memberErrors = memberErrors.prepend(false); | |
744 } | |
745 | |
746 void endFactoryMethod(Token beginToken, Token endToken) { | |
747 memberErrors = memberErrors.tail; | |
748 } | |
749 | |
750 /// Don't call this method. Should only be used as a last resort when there | 738 /// Don't call this method. Should only be used as a last resort when there |
751 /// is no feasible way to recover from a parser error. | 739 /// is no feasible way to recover from a parser error. |
752 void reportFatalError(Spannable spannable, String message) { | 740 void reportFatalError(Spannable spannable, String message) { |
753 reportError(spannable, MessageKind.GENERIC, {'text': message}); | 741 reportError(spannable, MessageKind.GENERIC, {'text': message}); |
754 // Some parse errors are infeasible to recover from, so we throw an error. | 742 // Some parse errors are infeasible to recover from, so we throw an error. |
755 throw new ParserError(message); | 743 throw new ParserError(message); |
756 } | 744 } |
757 | 745 |
758 @override | 746 @override |
759 void reportErrorHelper(Spannable spannable, MessageKind errorCode, | 747 void reportErrorHelper(Spannable spannable, MessageKind errorCode, |
760 [Map arguments = const {}]) { | 748 [Map arguments = const {}]) { |
761 if (currentMemberHasParseError) return; // Error already reported. | 749 if (currentMemberHasParseError) return; // Error already reported. |
762 if (suppressParseErrors) return; | 750 if (suppressParseErrors) return; |
763 if (!memberErrors.isEmpty) { | 751 if (!memberErrors.isEmpty) { |
764 memberErrors = memberErrors.tail.prepend(true); | 752 memberErrors = memberErrors.tail.prepend(true); |
765 } | 753 } |
766 reporter.reportErrorMessage(spannable, errorCode, arguments); | 754 reporter.reportErrorMessage(spannable, errorCode, arguments); |
767 } | 755 } |
768 } | 756 } |
OLD | NEW |