in src/Analysis/Codelyzer.Analysis.CSharp/Handlers/MethodDeclarationHandler.cs [20:55]
private void SetMetaData(MethodDeclarationSyntax syntaxNode)
{
if (syntaxNode.ReturnType != null)
Model.ReturnType = syntaxNode.ReturnType.ToString();
Model.SemanticReturnType =
SemanticHelper.GetSemanticType(syntaxNode.ReturnType, SemanticModel, OriginalSemanticModel);
if (syntaxNode.ParameterList != null)
{
foreach (var parameter in syntaxNode.ParameterList.Parameters)
{
var param = new Parameter();
if (parameter.Identifier != null)
param.Name = parameter.Identifier.Text;
if (parameter.Type != null)
param.Type = parameter.Type.ToString();
param.SemanticType =
SemanticHelper.GetSemanticType(parameter.Type, SemanticModel, OriginalSemanticModel);
Model.Parameters.Add(param);
}
}
Model.Modifiers = syntaxNode.Modifiers.ToString();
var methodSymbol = (IMethodSymbol)
(SemanticHelper.GetSemanticSymbol(syntaxNode, SemanticModel, OriginalSemanticModel)
?? SemanticHelper.GetDeclaredSymbol(syntaxNode, SemanticModel, OriginalSemanticModel)
?? SemanticHelper.GetDeclaredOriginalSymbol(syntaxNode, SemanticModel, OriginalSemanticModel));
if (methodSymbol == null) return;
SemanticHelper.AddMethodProperties(methodSymbol, Model.SemanticProperties);
Model.SemanticSignature = SemanticHelper.GetSemanticMethodSignature(SemanticModel, OriginalSemanticModel, syntaxNode);
}