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

Side by Side Diff: pkg/analyzer/lib/src/dart/ast/utilities.dart

Issue 2752853002: Improve printing of generic function types and add tests (Closed)
Patch Set: Created 3 years, 9 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
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/testing/ast_test_factory.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.dart.ast.utilities; 5 library analyzer.src.dart.ast.utilities;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/dart/ast/ast.dart'; 9 import 'package:analyzer/dart/ast/ast.dart';
10 import 'package:analyzer/dart/ast/standard_ast_factory.dart'; 10 import 'package:analyzer/dart/ast/standard_ast_factory.dart';
(...skipping 7519 matching lines...) Expand 10 before | Expand all | Expand 10 after
7530 _visitNode(node.parameters); 7530 _visitNode(node.parameters);
7531 if (node.question != null) { 7531 if (node.question != null) {
7532 _writer.print('?'); 7532 _writer.print('?');
7533 } 7533 }
7534 return null; 7534 return null;
7535 } 7535 }
7536 7536
7537 @override 7537 @override
7538 Object visitGenericFunctionType(GenericFunctionType node) { 7538 Object visitGenericFunctionType(GenericFunctionType node) {
7539 _visitNode(node.returnType); 7539 _visitNode(node.returnType);
7540 _writer.print(' Function '); 7540 _writer.print(' Function');
7541 _visitNode(node.typeParameters); 7541 _visitNode(node.typeParameters);
7542 _visitNode(node.parameters); 7542 _visitNode(node.parameters);
7543 return null; 7543 return null;
7544 } 7544 }
7545 7545
7546 @override 7546 @override
7547 Object visitGenericTypeAlias(GenericTypeAlias node) { 7547 Object visitGenericTypeAlias(GenericTypeAlias node) {
7548 _visitNodeListWithSeparatorAndSuffix(node.metadata, " ", " "); 7548 _visitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
7549 _writer.print("typedef "); 7549 _writer.print("typedef ");
7550 _visitNode(node.name); 7550 _visitNode(node.name);
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
7873 _writer.print("show "); 7873 _writer.print("show ");
7874 _visitNodeListWithSeparator(node.shownNames, ", "); 7874 _visitNodeListWithSeparator(node.shownNames, ", ");
7875 return null; 7875 return null;
7876 } 7876 }
7877 7877
7878 @override 7878 @override
7879 Object visitSimpleFormalParameter(SimpleFormalParameter node) { 7879 Object visitSimpleFormalParameter(SimpleFormalParameter node) {
7880 _visitNodeListWithSeparatorAndSuffix(node.metadata, ' ', ' '); 7880 _visitNodeListWithSeparatorAndSuffix(node.metadata, ' ', ' ');
7881 _visitTokenWithSuffix(node.covariantKeyword, ' '); 7881 _visitTokenWithSuffix(node.covariantKeyword, ' ');
7882 _visitTokenWithSuffix(node.keyword, " "); 7882 _visitTokenWithSuffix(node.keyword, " ");
7883 _visitNodeWithSuffix(node.type, " "); 7883 _visitNode(node.type);
7884 if (node.type != null && node.identifier != null) {
7885 _writer.print(' ');
7886 }
7884 _visitNode(node.identifier); 7887 _visitNode(node.identifier);
7885 return null; 7888 return null;
7886 } 7889 }
7887 7890
7888 @override 7891 @override
7889 Object visitSimpleIdentifier(SimpleIdentifier node) { 7892 Object visitSimpleIdentifier(SimpleIdentifier node) {
7890 _writer.print(node.token.lexeme); 7893 _writer.print(node.token.lexeme);
7891 return null; 7894 return null;
7892 } 7895 }
7893 7896
(...skipping 946 matching lines...) Expand 10 before | Expand all | Expand 10 after
8840 safelyVisitNode(node.parameters); 8843 safelyVisitNode(node.parameters);
8841 if (node.question != null) { 8844 if (node.question != null) {
8842 sink.write('?'); 8845 sink.write('?');
8843 } 8846 }
8844 return null; 8847 return null;
8845 } 8848 }
8846 8849
8847 @override 8850 @override
8848 Object visitGenericFunctionType(GenericFunctionType node) { 8851 Object visitGenericFunctionType(GenericFunctionType node) {
8849 safelyVisitNode(node.returnType); 8852 safelyVisitNode(node.returnType);
8850 sink.write(' Function '); 8853 sink.write(' Function');
8851 safelyVisitNode(node.typeParameters); 8854 safelyVisitNode(node.typeParameters);
8852 safelyVisitNode(node.parameters); 8855 safelyVisitNode(node.parameters);
8853 return null; 8856 return null;
8854 } 8857 }
8855 8858
8856 @override 8859 @override
8857 Object visitGenericTypeAlias(GenericTypeAlias node) { 8860 Object visitGenericTypeAlias(GenericTypeAlias node) {
8858 safelyVisitNodeListWithSeparatorAndSuffix(node.metadata, " ", " "); 8861 safelyVisitNodeListWithSeparatorAndSuffix(node.metadata, " ", " ");
8859 sink.write("typedef "); 8862 sink.write("typedef ");
8860 safelyVisitNode(node.name); 8863 safelyVisitNode(node.name);
(...skipping 322 matching lines...) Expand 10 before | Expand all | Expand 10 after
9183 sink.write("show "); 9186 sink.write("show ");
9184 safelyVisitNodeListWithSeparator(node.shownNames, ", "); 9187 safelyVisitNodeListWithSeparator(node.shownNames, ", ");
9185 return null; 9188 return null;
9186 } 9189 }
9187 9190
9188 @override 9191 @override
9189 Object visitSimpleFormalParameter(SimpleFormalParameter node) { 9192 Object visitSimpleFormalParameter(SimpleFormalParameter node) {
9190 safelyVisitNodeListWithSeparatorAndSuffix(node.metadata, ' ', ' '); 9193 safelyVisitNodeListWithSeparatorAndSuffix(node.metadata, ' ', ' ');
9191 safelyVisitTokenWithSuffix(node.covariantKeyword, ' '); 9194 safelyVisitTokenWithSuffix(node.covariantKeyword, ' ');
9192 safelyVisitTokenWithSuffix(node.keyword, " "); 9195 safelyVisitTokenWithSuffix(node.keyword, " ");
9193 safelyVisitNodeWithSuffix(node.type, " "); 9196 safelyVisitNode(node.type);
9197 if (node.type != null && node.identifier != null) {
9198 sink.write(' ');
9199 }
9194 safelyVisitNode(node.identifier); 9200 safelyVisitNode(node.identifier);
9195 return null; 9201 return null;
9196 } 9202 }
9197 9203
9198 @override 9204 @override
9199 Object visitSimpleIdentifier(SimpleIdentifier node) { 9205 Object visitSimpleIdentifier(SimpleIdentifier node) {
9200 sink.write(node.token.lexeme); 9206 sink.write(node.token.lexeme);
9201 return null; 9207 return null;
9202 } 9208 }
9203 9209
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after
9375 if (node.star != null) { 9381 if (node.star != null) {
9376 sink.write("yield* "); 9382 sink.write("yield* ");
9377 } else { 9383 } else {
9378 sink.write("yield "); 9384 sink.write("yield ");
9379 } 9385 }
9380 safelyVisitNode(node.expression); 9386 safelyVisitNode(node.expression);
9381 sink.write(";"); 9387 sink.write(";");
9382 return null; 9388 return null;
9383 } 9389 }
9384 } 9390 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/lib/src/generated/testing/ast_test_factory.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698