anchor.diff:            new _Range.fromAstNode(member.name),
             new _Range.fromAstNode(member)));
       } else if (member.isSetter) {
  -      String type = null;
  -
  -      // Only show setter type if [analyzer.SimpleFormalParameter] and single
  -      if (member.parameters.parameters.length == 1) {
  -        analyzer.FormalParameter param = member.parameters.parameters.single;
  -        if (param is analyzer.SimpleFormalParameter) {
  -          type = _getTypeNameString(param.type);
  -        }
  -      }
  -
         outlineClass.members.add(_populateOutlineEntry(
  -          new OutlineClassAccessor(member.name.name, type, true),
  +          new OutlineClassAccessor(member.name.name,
  +              _getSetterTypeFromParams(member.parameters), true),
             new _Range.fromAstNode(member.name),
             new _Range.fromAstNode(member)));
       } else {
  
positive.code:     return outline;
    }
  
    void _addVariableToOutline(Outline outline,
        analyzer.TopLevelVariableDeclaration declaration) {
      analyzer.VariableDeclarationList variables = declaration.variables;
  
negative.code:           new OutlineTopLevelAccessor(name, _getTypeNameString(declaration.returnType)),
            nameRange, bodyRange));
      } else if (declaration.isSetter) {
        analyzer.FormalParameterList params =
            declaration.functionExpression.parameters;
        outline.entries.add(_populateOutlineEntry(
            new OutlineTopLevelAccessor(name,
                _getSetterTypeFromParams(params), true),
            nameRange, bodyRange));
      } else {
        outline.entries.add(_populateOutlineEntry(
            new OutlineTopLevelFunction(name,
  