| Index: pkg/analysis_server/lib/src/protocol_server.dart
|
| diff --git a/pkg/analysis_server/lib/src/protocol_server.dart b/pkg/analysis_server/lib/src/protocol_server.dart
|
| index d8835118aa4d36e4a99bfcc4574225f8b98aa3f1..90e15124ad439a4e6ab5098d1b293f991d7c092f 100644
|
| --- a/pkg/analysis_server/lib/src/protocol_server.dart
|
| +++ b/pkg/analysis_server/lib/src/protocol_server.dart
|
| @@ -330,39 +330,41 @@ List<Element> _computePath(engine.Element element) {
|
|
|
| String _getParametersString(engine.Element element) {
|
| // TODO(scheglov) expose the corresponding feature from ExecutableElement
|
| + List<engine.ParameterElement> parameters;
|
| if (element is engine.ExecutableElement) {
|
| // valid getters don't have parameters
|
| if (element.kind == engine.ElementKind.GETTER &&
|
| element.parameters.isEmpty) {
|
| return null;
|
| }
|
| - // append parameters
|
| - StringBuffer sb = new StringBuffer();
|
| - String closeOptionalString = '';
|
| - for (engine.ParameterElement parameter in element.parameters) {
|
| - if (sb.isNotEmpty) {
|
| - sb.write(', ');
|
| + parameters = element.parameters;
|
| + } else if (element is engine.FunctionTypeAliasElement) {
|
| + parameters = element.parameters;
|
| + } else {
|
| + return null;
|
| + }
|
| + StringBuffer sb = new StringBuffer();
|
| + String closeOptionalString = '';
|
| + for (engine.ParameterElement parameter in parameters) {
|
| + if (sb.isNotEmpty) {
|
| + sb.write(', ');
|
| + }
|
| + if (closeOptionalString.isEmpty) {
|
| + if (parameter.kind == engine.ParameterKind.NAMED) {
|
| + sb.write('{');
|
| + closeOptionalString = '}';
|
| }
|
| - if (closeOptionalString.isEmpty) {
|
| - if (parameter.kind == engine.ParameterKind.NAMED) {
|
| - sb.write('{');
|
| - closeOptionalString = '}';
|
| - }
|
| - if (parameter.kind == engine.ParameterKind.POSITIONAL) {
|
| - sb.write('[');
|
| - closeOptionalString = ']';
|
| - }
|
| + if (parameter.kind == engine.ParameterKind.POSITIONAL) {
|
| + sb.write('[');
|
| + closeOptionalString = ']';
|
| }
|
| - sb.write(parameter.toString());
|
| }
|
| - sb.write(closeOptionalString);
|
| - return '(' + sb.toString() + ')';
|
| - } else {
|
| - return null;
|
| + sb.write(parameter.toString());
|
| }
|
| + sb.write(closeOptionalString);
|
| + return '(' + sb.toString() + ')';
|
| }
|
|
|
| -
|
| String _getReturnTypeString(engine.Element element) {
|
| if (element is engine.ExecutableElement) {
|
| if (element.kind == engine.ElementKind.SETTER) {
|
| @@ -373,6 +375,8 @@ String _getReturnTypeString(engine.Element element) {
|
| } else if (element is engine.VariableElement) {
|
| engine.DartType type = element.type;
|
| return type != null ? type.displayName : 'dynamic';
|
| + } else if (element is engine.FunctionTypeAliasElement) {
|
| + return element.returnType.toString();
|
| } else {
|
| return null;
|
| }
|
|
|