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

Unified 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, 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 side-by-side diff with in-line comments
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 »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/dart/element/member.dart
diff --git a/pkg/analyzer/lib/src/dart/element/member.dart b/pkg/analyzer/lib/src/dart/element/member.dart
index 5e222e6db65914cd2f3e08794832e95cca720f3b..28ba247ccc739ff8c0fbbea660c066c81464d78f 100644
--- a/pkg/analyzer/lib/src/dart/element/member.dart
+++ b/pkg/analyzer/lib/src/dart/element/member.dart
@@ -581,13 +581,46 @@ class MethodMember extends ExecutableMember implements MethodElement {
buffer.write(baseElement.enclosingElement.displayName);
buffer.write(".");
buffer.write(baseElement.displayName);
+ int typeParameterCount = typeParameters.length;
+ if (typeParameterCount > 0) {
+ buffer.write('<');
+ for (int i = 0; i < typeParameterCount; i++) {
+ if (i > 0) {
+ buffer.write(", ");
+ }
+ (typeParameters[i] as TypeParameterElementImpl).appendTo(buffer);
+ }
+ buffer.write('>');
+ }
buffer.write("(");
+ String closing = null;
+ ParameterKind kind = ParameterKind.REQUIRED;
int parameterCount = parameters.length;
for (int i = 0; i < parameterCount; i++) {
if (i > 0) {
buffer.write(", ");
}
- buffer.write(parameters[i]);
+ ParameterElement parameter = parameters[i];
+ ParameterKind parameterKind = parameter.parameterKind;
+ if (parameterKind != kind) {
+ if (closing != null) {
+ buffer.write(closing);
+ }
+ if (parameterKind == ParameterKind.POSITIONAL) {
+ buffer.write("[");
+ closing = "]";
+ } else if (parameterKind == ParameterKind.NAMED) {
+ buffer.write("{");
+ closing = "}";
+ } else {
+ closing = null;
+ }
+ }
+ kind = parameterKind;
+ parameter.appendToWithoutDelimiters(buffer);
+ }
+ if (closing != null) {
+ buffer.write(closing);
}
buffer.write(")");
if (type != null) {
« 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