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

Side by Side Diff: pkg/compiler/lib/src/scanner/parser.dart

Issue 1155633002: Fix 56 hints in pkg/compiler (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: rebase Created 5 years, 7 months 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
OLDNEW
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 scanner; 5 part of scanner;
6 6
7 class FormalParameterType { 7 class FormalParameterType {
8 final String type; 8 final String type;
9 const FormalParameterType(this.type); 9 const FormalParameterType(this.type);
10 bool get isRequired => this == REQUIRED; 10 bool get isRequired => this == REQUIRED;
(...skipping 381 matching lines...) Expand 10 before | Expand all | Expand 10 after
392 } while (optional(',', token)); 392 } while (optional(',', token));
393 listener.endOptionalFormalParameters(parameterCount, begin, token); 393 listener.endOptionalFormalParameters(parameterCount, begin, token);
394 if (isNamed) { 394 if (isNamed) {
395 return expect('}', token); 395 return expect('}', token);
396 } else { 396 } else {
397 return expect(']', token); 397 return expect(']', token);
398 } 398 }
399 } 399 }
400 400
401 Token parseTypeOpt(Token token) { 401 Token parseTypeOpt(Token token) {
402 String value = token.stringValue;
403 Token peek = peekAfterIfType(token); 402 Token peek = peekAfterIfType(token);
404 if (peek != null && (peek.isIdentifier() || optional('this', peek))) { 403 if (peek != null && (peek.isIdentifier() || optional('this', peek))) {
405 return parseType(token); 404 return parseType(token);
406 } 405 }
407 listener.handleNoType(token); 406 listener.handleNoType(token);
408 return token; 407 return token;
409 } 408 }
410 409
411 bool isValidTypeReference(Token token) { 410 bool isValidTypeReference(Token token) {
412 final kind = token.kind; 411 final kind = token.kind;
(...skipping 519 matching lines...) Expand 10 before | Expand all | Expand 10 after
932 /// get foo async* { return null } 931 /// get foo async* { return null }
933 /// results in 932 /// results in
934 /// ['{', 'foo', 'get'] 933 /// ['{', 'foo', 'get']
935 /// 934 ///
936 /// 935 ///
937 /// operator *(arg) => null; 936 /// operator *(arg) => null;
938 /// results in 937 /// results in
939 /// ['(', '*', 'operator'] 938 /// ['(', '*', 'operator']
940 /// 939 ///
941 Link<Token> findMemberName(Token token) { 940 Link<Token> findMemberName(Token token) {
942 Token start = token;
943 Link<Token> identifiers = const Link<Token>(); 941 Link<Token> identifiers = const Link<Token>();
944 942
945 // `true` if 'get' has been seen. 943 // `true` if 'get' has been seen.
946 bool isGetter = false; 944 bool isGetter = false;
947 // `true` if an identifier has been seen after 'get'. 945 // `true` if an identifier has been seen after 'get'.
948 bool hasName = false; 946 bool hasName = false;
949 947
950 while (token.kind != EOF_TOKEN) { 948 while (token.kind != EOF_TOKEN) {
951 String value = token.stringValue; 949 String value = token.stringValue;
952 if (value == 'get') { 950 if (value == 'get') {
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after
1155 } 1153 }
1156 1154
1157 bool isFactoryDeclaration(Token token) { 1155 bool isFactoryDeclaration(Token token) {
1158 if (optional('external', token)) token = token.next; 1156 if (optional('external', token)) token = token.next;
1159 if (optional('const', token)) token = token.next; 1157 if (optional('const', token)) token = token.next;
1160 return optional('factory', token); 1158 return optional('factory', token);
1161 } 1159 }
1162 1160
1163 Token parseMember(Token token) { 1161 Token parseMember(Token token) {
1164 token = parseMetadataStar(token); 1162 token = parseMetadataStar(token);
1165 String value = token.stringValue;
1166 if (isFactoryDeclaration(token)) { 1163 if (isFactoryDeclaration(token)) {
1167 return parseFactoryMethod(token); 1164 return parseFactoryMethod(token);
1168 } 1165 }
1169 Token start = token; 1166 Token start = token;
1170 listener.beginMember(token); 1167 listener.beginMember(token);
1171 1168
1172 Link<Token> identifiers = findMemberName(token); 1169 Link<Token> identifiers = findMemberName(token);
1173 if (identifiers.isEmpty) { 1170 if (identifiers.isEmpty) {
1174 return listener.expectedDeclaration(start); 1171 return listener.expectedDeclaration(start);
1175 } 1172 }
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
1332 Token constKeyword = null; 1329 Token constKeyword = null;
1333 if (optional('const', token)) { 1330 if (optional('const', token)) {
1334 constKeyword = token; 1331 constKeyword = token;
1335 token = token.next; 1332 token = token.next;
1336 } 1333 }
1337 Token factoryKeyword = token; 1334 Token factoryKeyword = token;
1338 listener.beginFactoryMethod(factoryKeyword); 1335 listener.beginFactoryMethod(factoryKeyword);
1339 token = token.next; // Skip 'factory'. 1336 token = token.next; // Skip 'factory'.
1340 token = parseConstructorReference(token); 1337 token = parseConstructorReference(token);
1341 token = parseFormalParameters(token); 1338 token = parseFormalParameters(token);
1342 bool previousYieldIsKeyword = yieldIsKeyword;
1343 bool previousAwaitIsKeyword = awaitIsKeyword;
1344 token = parseAsyncModifier(token); 1339 token = parseAsyncModifier(token);
1345 if (optional('=', token)) { 1340 if (optional('=', token)) {
1346 token = parseRedirectingFactoryBody(token); 1341 token = parseRedirectingFactoryBody(token);
1347 } else { 1342 } else {
1348 token = parseFunctionBody(token, false, externalModifier != null); 1343 token = parseFunctionBody(token, false, externalModifier != null);
1349 } 1344 }
1350 listener.endFactoryMethod(start, token); 1345 listener.endFactoryMethod(start, token);
1351 return token.next; 1346 return token.next;
1352 } 1347 }
1353 1348
(...skipping 1309 matching lines...) Expand 10 before | Expand all | Expand 10 after
2663 } 2658 }
2664 listener.handleContinueStatement(hasTarget, continueKeyword, token); 2659 listener.handleContinueStatement(hasTarget, continueKeyword, token);
2665 return expectSemicolon(token); 2660 return expectSemicolon(token);
2666 } 2661 }
2667 2662
2668 Token parseEmptyStatement(Token token) { 2663 Token parseEmptyStatement(Token token) {
2669 listener.handleEmptyStatement(token); 2664 listener.handleEmptyStatement(token);
2670 return expectSemicolon(token); 2665 return expectSemicolon(token);
2671 } 2666 }
2672 } 2667 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/scanner/listener.dart ('k') | pkg/compiler/lib/src/scanner/parser_task.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698