Skip to content

Commit

Permalink
Issue 35818. Use getDisplayString() in _ElementWriter.
Browse files Browse the repository at this point in the history
R=brianwilkerson@google.com, paulberry@google.com

Bug: #35818
Change-Id: I9a86729ba48cf599c45afee2c7ba83f32ba3c30b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/127445
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
  • Loading branch information
scheglov authored and commit-bot@chromium.org committed Dec 5, 2019
1 parent e20ff1e commit 845fccc
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 68 deletions.
2 changes: 0 additions & 2 deletions pkg/analyzer/lib/src/dart/element/type.dart
Original file line number Diff line number Diff line change
Expand Up @@ -256,8 +256,6 @@ class FunctionTypeImpl extends TypeImpl implements FunctionType {

@override
void appendTo(StringBuffer buffer, {@required bool withNullability}) {
// TODO(paulberry): eliminate code duplication with
// _ElementWriter.writeType. See issue #35818.
if (typeFormals.isNotEmpty) {
StringBuffer typeParametersBuffer = StringBuffer();
// To print a type with type variables, first make sure we have unique
Expand Down
71 changes: 5 additions & 66 deletions pkg/analyzer/test/src/summary/element_text.dart
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import 'dart:io';
import 'package:analyzer/dart/ast/ast.dart';
import 'package:analyzer/dart/ast/token.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/nullability_suffix.dart';
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/dart/element/type.dart';
Expand Down Expand Up @@ -1030,45 +1029,11 @@ class _ElementWriter {
}

void writeType(DartType type) {
if (type is InterfaceType) {
buffer.write(type.element.name);
if (type.element.typeParameters.isNotEmpty) {
writeList('<', '>', type.typeArguments, ', ', writeType);
}
} else if (type is FunctionType) {
writeType2(type.returnType);
buffer.write('Function');
writeTypeParameterElements(type.typeFormals);
buffer.write('(');
bool commaNeeded = false;
commaNeeded = _writeParameters(
type.parameters.where((p) => p.isRequiredPositional),
commaNeeded,
'',
'');
commaNeeded = _writeParameters(
type.parameters.where((p) => p.isOptionalPositional),
commaNeeded,
'[',
']');
commaNeeded = _writeParameters(
type.parameters.where((p) => p.isNamed), commaNeeded, '{', '}');
buffer.write(')');
} else {
buffer.write(type.displayName);
}
if (annotateNullability) {
switch ((type as TypeImpl).nullabilitySuffix) {
case NullabilitySuffix.none:
break;
case NullabilitySuffix.question:
buffer.write('?');
break;
case NullabilitySuffix.star:
buffer.write('*');
break;
}
}
buffer.write(
type.getDisplayString(
withNullability: annotateNullability,
),
);
}

void writeType2(DartType type) {
Expand Down Expand Up @@ -1200,32 +1165,6 @@ class _ElementWriter {
buffer.writeln(line);
}

bool _writeParameters(Iterable<ParameterElement> parameters, bool commaNeeded,
String prefix, String suffix) {
if (parameters.isEmpty) return commaNeeded;
if (commaNeeded) {
buffer.write(', ');
commaNeeded = false;
}
buffer.write(prefix);
for (var parameter in parameters) {
if (commaNeeded) {
buffer.write(', ');
}
if (parameter.isRequiredNamed) {
buffer.write('required ');
}
writeType(parameter.type);
if (parameter.isNamed) {
buffer.write(' ');
buffer.write(parameter.name);
}
commaNeeded = true;
}
buffer.write(suffix);
return commaNeeded;
}

void _writeResolvedMetadata(List<ElementAnnotation> metadata) {
if (metadata.isNotEmpty) {
_writelnWithIndent('metadata');
Expand Down

0 comments on commit 845fccc

Please sign in to comment.