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

Side by Side Diff: pkg/analyzer/lib/src/dart/element/member.dart

Issue 2909943004: Write type parameters when writing members (issue 29714) (Closed)
Patch Set: Created 3 years, 6 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 | « pkg/analysis_server/test/analysis/get_hover_test.dart ('k') | no next file » | 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.element.member; 5 library analyzer.src.dart.element.member;
6 6
7 import 'package:analyzer/dart/ast/ast.dart'; 7 import 'package:analyzer/dart/ast/ast.dart';
8 import 'package:analyzer/dart/constant/value.dart'; 8 import 'package:analyzer/dart/constant/value.dart';
9 import 'package:analyzer/dart/element/element.dart'; 9 import 'package:analyzer/dart/element/element.dart';
10 import 'package:analyzer/dart/element/type.dart'; 10 import 'package:analyzer/dart/element/type.dart';
(...skipping 563 matching lines...) Expand 10 before | Expand all | Expand 10 after
574 574
575 @override 575 @override
576 String toString() { 576 String toString() {
577 MethodElement baseElement = this.baseElement; 577 MethodElement baseElement = this.baseElement;
578 List<ParameterElement> parameters = this.parameters; 578 List<ParameterElement> parameters = this.parameters;
579 FunctionType type = this.type; 579 FunctionType type = this.type;
580 StringBuffer buffer = new StringBuffer(); 580 StringBuffer buffer = new StringBuffer();
581 buffer.write(baseElement.enclosingElement.displayName); 581 buffer.write(baseElement.enclosingElement.displayName);
582 buffer.write("."); 582 buffer.write(".");
583 buffer.write(baseElement.displayName); 583 buffer.write(baseElement.displayName);
584 int typeParameterCount = typeParameters.length;
585 if (typeParameterCount > 0) {
586 buffer.write('<');
587 for (int i = 0; i < typeParameterCount; i++) {
588 if (i > 0) {
589 buffer.write(", ");
590 }
591 (typeParameters[i] as TypeParameterElementImpl).appendTo(buffer);
592 }
593 buffer.write('>');
594 }
584 buffer.write("("); 595 buffer.write("(");
596 String closing = null;
597 ParameterKind kind = ParameterKind.REQUIRED;
585 int parameterCount = parameters.length; 598 int parameterCount = parameters.length;
586 for (int i = 0; i < parameterCount; i++) { 599 for (int i = 0; i < parameterCount; i++) {
587 if (i > 0) { 600 if (i > 0) {
588 buffer.write(", "); 601 buffer.write(", ");
589 } 602 }
590 buffer.write(parameters[i]); 603 ParameterElement parameter = parameters[i];
604 ParameterKind parameterKind = parameter.parameterKind;
605 if (parameterKind != kind) {
606 if (closing != null) {
607 buffer.write(closing);
608 }
609 if (parameterKind == ParameterKind.POSITIONAL) {
610 buffer.write("[");
611 closing = "]";
612 } else if (parameterKind == ParameterKind.NAMED) {
613 buffer.write("{");
614 closing = "}";
615 } else {
616 closing = null;
617 }
618 }
619 kind = parameterKind;
620 parameter.appendToWithoutDelimiters(buffer);
621 }
622 if (closing != null) {
623 buffer.write(closing);
591 } 624 }
592 buffer.write(")"); 625 buffer.write(")");
593 if (type != null) { 626 if (type != null) {
594 buffer.write(ElementImpl.RIGHT_ARROW); 627 buffer.write(ElementImpl.RIGHT_ARROW);
595 buffer.write(type.returnType); 628 buffer.write(type.returnType);
596 } 629 }
597 return buffer.toString(); 630 return buffer.toString();
598 } 631 }
599 632
600 /** 633 /**
(...skipping 379 matching lines...) Expand 10 before | Expand all | Expand 10 after
980 DartObject computeConstantValue() => baseElement.computeConstantValue(); 1013 DartObject computeConstantValue() => baseElement.computeConstantValue();
981 1014
982 @override 1015 @override
983 void visitChildren(ElementVisitor visitor) { 1016 void visitChildren(ElementVisitor visitor) {
984 // TODO(brianwilkerson) We need to finish implementing the accessors used 1017 // TODO(brianwilkerson) We need to finish implementing the accessors used
985 // below so that we can safely invoke them. 1018 // below so that we can safely invoke them.
986 super.visitChildren(visitor); 1019 super.visitChildren(visitor);
987 baseElement.initializer?.accept(visitor); 1020 baseElement.initializer?.accept(visitor);
988 } 1021 }
989 } 1022 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/test/analysis/get_hover_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698