private void SetMetaData()

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);
        }