From 57cbf4a62cc5a50c2ef0b39ff3321963dd05f2b6 Mon Sep 17 00:00:00 2001 From: Kallen Tu Date: Thu, 22 Feb 2024 00:28:08 +0000 Subject: [PATCH] Remove CallableElementType. --- lib/src/element_type.dart | 21 --------- lib/src/render/element_type_renderer.dart | 34 -------------- lib/src/render/parameter_renderer.dart | 57 +++++++++++------------ test/end2end/model_test.dart | 2 +- 4 files changed, 28 insertions(+), 86 deletions(-) diff --git a/lib/src/element_type.dart b/lib/src/element_type.dart index 8905031c50..fab010fae2 100644 --- a/lib/src/element_type.dart +++ b/lib/src/element_type.dart @@ -406,27 +406,6 @@ mixin Rendered implements ElementType { ElementTypeRenderer get _renderer; } -/// A callable type that may or may not be backed by a declaration using the -/// generic function syntax. -class CallableElementType extends DefinedElementType with Rendered, Callable { - CallableElementType._( - FunctionType super.t, super.library, super.packageGraph, super.element) - : super._(); - - @override - String get name => super.name.isNotEmpty ? super.name : 'Function'; - - @override - ElementTypeRenderer get _renderer => - const CallableElementTypeRendererHtml(); - - @override - late final List typeArguments = type.alias?.typeArguments - .map((f) => modelBuilder.typeFrom(f, library)) - .toList(growable: false) ?? - const []; -} - extension on DartType { /// The dartdoc nullability suffix for this type in [library]. String nullabilitySuffixWithin(Library library) { diff --git a/lib/src/render/element_type_renderer.dart b/lib/src/render/element_type_renderer.dart index e16323f44b..bb3ed84008 100644 --- a/lib/src/render/element_type_renderer.dart +++ b/lib/src/render/element_type_renderer.dart @@ -176,37 +176,3 @@ class AliasedElementTypeRendererHtml elementType.aliasArguments, ); } - -class CallableElementTypeRendererHtml - extends ElementTypeRenderer { - const CallableElementTypeRendererHtml(); - - @override - String renderLinkedName(CallableElementType elementType) { - var buffer = StringBuffer() - ..write(elementType.nameWithGenerics) - ..write('(') - ..write(const ParameterRendererHtml() - .renderLinkedParams(elementType.modelElement.parameters, - showNames: false) - .trim()) - ..write(') → ') - ..write(elementType.returnType.linkedName); - return wrapNullabilityParens(elementType, buffer.toString()); - } - - @override - String renderNameWithGenerics(CallableElementType elementType) { - var buffer = StringBuffer()..write(elementType.name); - if (elementType.typeArguments.isNotEmpty && - !elementType.typeArguments.every((t) => t.name == 'dynamic')) { - buffer - ..write('<') - ..writeAll( - elementType.typeArguments.map((t) => t.nameWithGenerics), ', ') - ..write('>'); - } - buffer.write(elementType.nullabilitySuffix); - return buffer.toString(); - } -} diff --git a/lib/src/render/parameter_renderer.dart b/lib/src/render/parameter_renderer.dart index d674fa28c8..9ad69a77f0 100644 --- a/lib/src/render/parameter_renderer.dart +++ b/lib/src/render/parameter_renderer.dart @@ -65,7 +65,7 @@ abstract class ParameterRenderer { String required(String required); String renderLinkedParams(List parameters, - {bool showMetadata = true, bool showNames = true}) { + {bool showMetadata = true}) { var positionalParams = parameters .where((Parameter p) => p.isRequiredPositional) .toList(growable: false); @@ -77,27 +77,33 @@ abstract class ParameterRenderer { var buffer = StringBuffer(); if (positionalParams.isNotEmpty) { - _renderLinkedParameterSublist(positionalParams, buffer, - trailingComma: - optionalPositionalParams.isNotEmpty || namedParams.isNotEmpty, - showMetadata: showMetadata, - showNames: showNames); + _renderLinkedParameterSublist( + positionalParams, + buffer, + trailingComma: + optionalPositionalParams.isNotEmpty || namedParams.isNotEmpty, + showMetadata: showMetadata, + ); } if (optionalPositionalParams.isNotEmpty) { - _renderLinkedParameterSublist(optionalPositionalParams, buffer, - trailingComma: namedParams.isNotEmpty, - openBracket: '[', - closeBracket: ']', - showMetadata: showMetadata, - showNames: showNames); + _renderLinkedParameterSublist( + optionalPositionalParams, + buffer, + trailingComma: namedParams.isNotEmpty, + openBracket: '[', + closeBracket: ']', + showMetadata: showMetadata, + ); } if (namedParams.isNotEmpty) { - _renderLinkedParameterSublist(namedParams, buffer, - trailingComma: false, - openBracket: '{', - closeBracket: '}', - showMetadata: showMetadata, - showNames: showNames); + _renderLinkedParameterSublist( + namedParams, + buffer, + trailingComma: false, + openBracket: '{', + closeBracket: '}', + showMetadata: showMetadata, + ); } return orderedList(buffer.toString()); } @@ -109,7 +115,6 @@ abstract class ParameterRenderer { String openBracket = '', String closeBracket = '', bool showMetadata = true, - bool showNames = true, }) { for (var p in parameters) { var prefix = ''; @@ -128,7 +133,6 @@ abstract class ParameterRenderer { prefix: prefix, suffix: suffix, showMetadata: showMetadata, - showNames: showNames, ); buffer.write(listItem(parameter(renderedParameter, p.htmlId))); } @@ -139,7 +143,6 @@ abstract class ParameterRenderer { required String prefix, required String suffix, bool showMetadata = true, - bool showNames = true, }) { final buffer = StringBuffer(prefix); final modelType = param.modelType; @@ -160,17 +163,12 @@ abstract class ParameterRenderer { ? modelType.linkedName : modelType.returnType.linkedName; buffer.write(typeName(returnTypeName)); - if (showNames) { - buffer.write(' ${parameterName(param.name)}'); - } else { - buffer.write(' ${parameterName(modelType.name)}'); - } + buffer.write(' ${parameterName(param.name)}'); if (!modelType.isTypedef && modelType is DefinedElementType) { buffer.write('('); buffer.write(renderLinkedParams( (modelType as DefinedElementType).modelElement.parameters, showMetadata: showMetadata, - showNames: showNames, )); buffer.write(')'); buffer.write(modelType.nullabilitySuffix); @@ -180,7 +178,6 @@ abstract class ParameterRenderer { buffer.write(renderLinkedParams( modelType.parameters, showMetadata: showMetadata, - showNames: showNames, )); buffer.write(')'); buffer.write(modelType.nullabilitySuffix); @@ -189,11 +186,11 @@ abstract class ParameterRenderer { final linkedTypeName = modelType.linkedName; if (linkedTypeName.isNotEmpty) { buffer.write(typeName(linkedTypeName)); - if (showNames && param.name.isNotEmpty) { + if (param.name.isNotEmpty) { buffer.write(' '); } } - if (showNames && param.name.isNotEmpty) { + if (param.name.isNotEmpty) { buffer.write(parameterName(param.name)); } } diff --git a/test/end2end/model_test.dart b/test/end2end/model_test.dart index db8a8488aa..8568b17cbd 100644 --- a/test/end2end/model_test.dart +++ b/test/end2end/model_test.dart @@ -4379,7 +4379,7 @@ String? topLevelFunction(int param1, bool param2, Cool coolBeans, test('a function requiring a Future parameter', () { expect( ParameterRendererHtml().renderLinkedParams(aVoidParameter.parameters, - showMetadata: true, showNames: true), + showMetadata: true), equals( 'Future<void> p1')); });