Fix lost question mark in function types (#3177)
diff --git a/lib/src/render/element_type_renderer.dart b/lib/src/render/element_type_renderer.dart
index eca1552..66fa8de 100644
--- a/lib/src/render/element_type_renderer.dart
+++ b/lib/src/render/element_type_renderer.dart
@@ -90,7 +90,6 @@
..write('</span>>');
}
}
- buffer.write(elementType.nullabilitySuffix);
return buffer.toString();
}
}
@@ -253,7 +252,7 @@
..write('>');
}
}
- return wrapNullabilityParens(elementType, buffer.toString());
+ return buffer.toString();
}
}
diff --git a/test/element_type_test.dart b/test/element_type_test.dart
index e86c214..af7cd26 100644
--- a/test/element_type_test.dart
+++ b/test/element_type_test.dart
@@ -176,31 +176,34 @@
expect(
parameterType.linkedName,
// TODO(https://github.com/dart-lang/dartdoc/issues/2381): Fix.
- '($intLink Function?'
+ '($intLink Function'
'<span class="signature">'
'(<span class="parameter" id="param-">'
'<span class="type-annotation">$stringLink</span>'
'</span>)</span>?)',
);
- expect(parameterType.nameWithGenerics, equals('Function?'));
+ expect(parameterType.nameWithGenerics, equals('Function'));
});
test('generic function type has rendered names', () async {
final library = await bootPackageWithLibrary('''
-void f(int Function(String) p) {}
+void f(int Function<T>(T)? p) {}
''');
final fFunction = library.functions.named('f');
final parameterType = fFunction.parameters.single.modelType;
expect(
parameterType.linkedName,
- '$intLink Function'
+ '($intLink Function'
+ '<<wbr><span class="type-parameter">T</span>>'
'<span class="signature">'
'(<span class="parameter" id="param-">'
- '<span class="type-annotation">$stringLink</span>'
- '</span>)</span>',
+ '<span class="type-annotation">T</span></span>)</span>?)',
);
- expect(parameterType.nameWithGenerics, equals('Function'));
+ expect(
+ parameterType.nameWithGenerics,
+ 'Function<<wbr><span class="type-parameter">T</span>>',
+ );
});
});