Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1221)

Side by Side Diff: pkg/analyzer/lib/src/generated/parser.dart

Issue 2551533002: Handle generic local functions without a return type (issue 27965) (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | pkg/analyzer/test/generated/parser_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 analyzer.src.generated.parser; 5 library analyzer.src.generated.parser;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 import "dart:math" as math; 8 import "dart:math" as math;
9 9
10 import 'package:analyzer/dart/ast/ast.dart'; 10 import 'package:analyzer/dart/ast/ast.dart';
(...skipping 6858 matching lines...) Expand 10 before | Expand all | Expand 10 after
6869 if (keyword == Keyword.VOID) { 6869 if (keyword == Keyword.VOID) {
6870 return astFactory.typeName( 6870 return astFactory.typeName(
6871 astFactory.simpleIdentifier(getAndAdvance()), null); 6871 astFactory.simpleIdentifier(getAndAdvance()), null);
6872 } else if (_matchesIdentifier()) { 6872 } else if (_matchesIdentifier()) {
6873 Token next = _peek(); 6873 Token next = _peek();
6874 if (keyword != Keyword.GET && 6874 if (keyword != Keyword.GET &&
6875 keyword != Keyword.SET && 6875 keyword != Keyword.SET &&
6876 keyword != Keyword.OPERATOR && 6876 keyword != Keyword.OPERATOR &&
6877 (_tokenMatchesIdentifier(next) || 6877 (_tokenMatchesIdentifier(next) ||
6878 _tokenMatches(next, TokenType.LT))) { 6878 _tokenMatches(next, TokenType.LT))) {
6879 Token afterTypeParameters = _skipTypeParameterList(next);
6880 if (afterTypeParameters != null &&
6881 _tokenMatches(afterTypeParameters, TokenType.OPEN_PAREN)) {
6882 // If the identifier is followed by type parameters and a parenthesis,
6883 // then the identifier is the name of a generic method, not a return
6884 // type.
6885 return null;
6886 }
6879 return parseReturnType(); 6887 return parseReturnType();
6880 } 6888 }
6881 Token next2 = next.next; 6889 Token next2 = next.next;
6882 Token next3 = next2.next; 6890 Token next3 = next2.next;
6883 if (_tokenMatches(next, TokenType.PERIOD) && 6891 if (_tokenMatches(next, TokenType.PERIOD) &&
6884 _tokenMatchesIdentifier(next2) && 6892 _tokenMatchesIdentifier(next2) &&
6885 (_tokenMatchesIdentifier(next3) || 6893 (_tokenMatchesIdentifier(next3) ||
6886 _tokenMatches(next3, TokenType.LT))) { 6894 _tokenMatches(next3, TokenType.LT))) {
6887 return parseReturnType(); 6895 return parseReturnType();
6888 } 6896 }
(...skipping 1292 matching lines...) Expand 10 before | Expand all | Expand 10 after
8181 */ 8189 */
8182 Parser_SyntheticKeywordToken(Keyword keyword, int offset) 8190 Parser_SyntheticKeywordToken(Keyword keyword, int offset)
8183 : super(keyword, offset); 8191 : super(keyword, offset);
8184 8192
8185 @override 8193 @override
8186 int get length => 0; 8194 int get length => 0;
8187 8195
8188 @override 8196 @override
8189 Token copy() => new Parser_SyntheticKeywordToken(keyword, offset); 8197 Token copy() => new Parser_SyntheticKeywordToken(keyword, offset);
8190 } 8198 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/test/generated/parser_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698