File: MetadataAsSource\AbstractMetadataAsSourceService.AbstractWrappedSymbol.cs
Web Access
Project: src\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 abstract 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);
    }
}