File: MetadataAsSource\AbstractMetadataAsSourceService.AbstractWrappedSymbol.cs
Web Access
Project: ..\..\..\src\Features\Core\Portable\Microsoft.CodeAnalysis.Features.csproj (Microsoft.CodeAnalysis.Features)
// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
 
#nullable disable
 
using System.Collections.Immutable;
using System.Globalization;
using System.Threading;
using Microsoft.CodeAnalysis.DocumentationComments;
 
namespace Microsoft.CodeAnalysis.MetadataAsSource
{
    internal partial class AbstractMetadataAsSourceService
    {
        private abstract class AbstractWrappedSymbol : ISymbol
        {
            private readonly ISymbol _symbol;
            protected readonly bool CanImplementImplicitly;
            protected readonly IDocumentationCommentFormattingService DocCommentFormattingService;
 
            protected AbstractWrappedSymbol(ISymbol symbol, bool canImplementImplicitly, IDocumentationCommentFormattingService docCommentFormattingService)
            {
                _symbol = symbol;
                CanImplementImplicitly = canImplementImplicitly;
                DocCommentFormattingService = docCommentFormattingService;
            }
 
            public bool CanBeReferencedByName => _symbol.CanBeReferencedByName;
 
            public IAssemblySymbol ContainingAssembly => _symbol.ContainingAssembly;
 
            public IModuleSymbol ContainingModule => _symbol.ContainingModule;
 
            public INamespaceSymbol ContainingNamespace => _symbol.ContainingNamespace;
 
            public ISymbol ContainingSymbol => _symbol.ContainingSymbol;
 
            public INamedTypeSymbol ContainingType => _symbol.ContainingType;
 
            public Accessibility DeclaredAccessibility => _symbol.DeclaredAccessibility;
 
            public ImmutableArray<SyntaxReference> DeclaringSyntaxReferences => _symbol.DeclaringSyntaxReferences;
 
            public bool IsAbstract => _symbol.IsAbstract;
 
            public bool IsDefinition => _symbol.IsDefinition;
 
            public bool IsExtern => _symbol.IsExtern;
 
            public bool IsImplicitlyDeclared => _symbol.IsImplicitlyDeclared;
 
            public bool IsOverride => _symbol.IsOverride;
 
            public bool IsSealed => _symbol.IsSealed;
 
            public bool IsStatic => _symbol.IsStatic;
 
            public bool IsVirtual => _symbol.IsVirtual;
 
            public SymbolKind Kind => _symbol.Kind;
 
            public string Language => _symbol.Language;
 
            public ImmutableArray<Location> Locations => _symbol.Locations;
 
            public string MetadataName => _symbol.MetadataName;
 
            public int MetadataToken => _symbol.MetadataToken;
 
            public string Name => _symbol.Name;
 
            public ISymbol OriginalDefinition => _symbol.OriginalDefinition;
 
            public bool HasUnsupportedMetadata => _symbol.HasUnsupportedMetadata;
 
            public void Accept(SymbolVisitor visitor)
                => _symbol.Accept(visitor);
 
            public TResult Accept<TResult>(SymbolVisitor<TResult> visitor)
                => _symbol.Accept(visitor);
 
            public TResult Accept<TArgument, TResult>(SymbolVisitor<TArgument, TResult> visitor, TArgument argument)
                => _symbol.Accept(visitor, argument);
 
            public ImmutableArray<AttributeData> GetAttributes()
                => _symbol.GetAttributes();
 
            public string GetDocumentationCommentId()
                => _symbol.GetDocumentationCommentId();
 
            public string GetDocumentationCommentXml(CultureInfo preferredCulture = null, bool expandIncludes = false, CancellationToken cancellationToken = default)
                => _symbol.GetDocumentationCommentXml(preferredCulture, expandIncludes, cancellationToken);
 
            public ImmutableArray<SymbolDisplayPart> ToDisplayParts(SymbolDisplayFormat format = null)
                => _symbol.ToDisplayParts(format);
 
            public string ToDisplayString(SymbolDisplayFormat format = null)
                => _symbol.ToDisplayString(format);
 
            public string ToMinimalDisplayString(SemanticModel semanticModel, int position, SymbolDisplayFormat format = null)
                => _symbol.ToMinimalDisplayString(semanticModel, position, format);
 
            public ImmutableArray<SymbolDisplayPart> ToMinimalDisplayParts(SemanticModel semanticModel, int position, SymbolDisplayFormat format = null)
                => _symbol.ToMinimalDisplayParts(semanticModel, position, format);
 
            public bool Equals(ISymbol other)
                => Equals((object)other);
 
            public bool Equals(ISymbol other, SymbolEqualityComparer equalityComparer)
                => Equals(other);
        }
    }
}