Example #1
0
        private void WalkMethod(IMethodSymbol method, MutableSymbol parent)
        {
            MutableSymbol result = new MutableSymbol(method.AdjustedName(), GetMethodType(method));

            AddModifiers(method, result);
            AddLocation(method, result);

            if (this.IncludeSignatures)
            {
                result.Parameters = method.MinimalParameters();
            }

            if (IsExcluded(method, result))
            {
                return;
            }

            parent.AddChild(result);

            // Add the extended type under Extension Methods
            if (result.Type == SymbolType.ExtensionMethod && method.Parameters.Length > 0)
            {
                IParameterSymbol thisParameter = method.Parameters[0];
                ITypeSymbol      thisType      = thisParameter.Type;
                MutableSymbol    extendedType  = new MutableSymbol(thisType.NamespaceAndName(), SymbolType.ExtendedType);
                extendedType.Modifiers = result.Modifiers;
                result.AddChild(extendedType);
            }
        }