public override MetadataItem VisitProperty(IPropertySymbol symbol) { MetadataItem result = GetYamlItem(symbol); if (result == null) { return(null); } if (result.Syntax == null) { result.Syntax = new SyntaxDetail { Content = new SortedList <SyntaxLanguage, string>() }; } if (result.Syntax.Parameters == null) { result.Syntax.Parameters = new List <ApiParameter>(); } if (result.Syntax.Content == null) { result.Syntax.Content = new SortedList <SyntaxLanguage, string>(); } _generator.GenerateSyntax(result.Type, symbol, result.Syntax, this); var typeGenericParameters = symbol.ContainingType.IsGenericType ? symbol.ContainingType.Accept(TypeGenericParameterNameVisitor.Instance) : EmptyListOfString; if (symbol.Parameters.Length > 0) { foreach (var p in symbol.Parameters) { var id = AddSpecReference(p.Type, typeGenericParameters); var param = VisitorHelper.GetParameterDescription(p, result, id, false, GetTripleSlashCommentParserContext(result, _preserveRawInlineComments)); Debug.Assert(param.Type != null); result.Syntax.Parameters.Add(param); } } { var id = AddSpecReference(symbol.Type, typeGenericParameters); result.Syntax.Return = VisitorHelper.GetParameterDescription(symbol, result, id, true, GetTripleSlashCommentParserContext(result, _preserveRawInlineComments)); Debug.Assert(result.Syntax.Return.Type != null); } if (symbol.IsOverride && symbol.OverriddenProperty != null) { result.Overridden = AddSpecReference(symbol.OverriddenProperty, typeGenericParameters); } _generator.GenerateProperty(symbol, result, this); return(result); }
private void AddMethodSyntax(IMethodSymbol symbol, MetadataItem result, IReadOnlyList <string> typeGenericParameters, IReadOnlyList <string> methodGenericParameters) { if (!symbol.ReturnsVoid) { var id = AddSpecReference(symbol.ReturnType, typeGenericParameters, methodGenericParameters); result.Syntax.Return = VisitorHelper.GetParameterDescription(symbol, result, id, true, GetTripleSlashCommentParserContext(result, _preserveRawInlineComments)); } if (symbol.Parameters.Length > 0) { if (result.Syntax.Parameters == null) { result.Syntax.Parameters = new List <ApiParameter>(); } foreach (var p in symbol.Parameters) { var id = AddSpecReference(p.Type, typeGenericParameters, methodGenericParameters); var param = VisitorHelper.GetParameterDescription(p, result, id, false, GetTripleSlashCommentParserContext(result, _preserveRawInlineComments)); Debug.Assert(param.Type != null); result.Syntax.Parameters.Add(param); } } }