File: NamespaceTypeDefinitionNoBase.cs
Web Access
Project: ..\..\..\src\ExpressionEvaluator\Core\Test\ExpressionCompiler\Microsoft.CodeAnalysis.ExpressionCompiler.Utilities.csproj (Microsoft.CodeAnalysis.ExpressionEvaluator.ExpressionCompiler.Utilities)
// 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 Microsoft.Cci;
using Microsoft.CodeAnalysis.Emit;
using System.Collections.Generic;
using System.Reflection.Metadata;
using System.Runtime.InteropServices;
 
namespace Microsoft.CodeAnalysis.ExpressionEvaluator.UnitTests
{
    internal sealed class NamespaceTypeDefinitionNoBase : INamespaceTypeDefinition
    {
        internal readonly INamespaceTypeDefinition UnderlyingType;
 
        internal NamespaceTypeDefinitionNoBase(INamespaceTypeDefinition underlyingType)
        {
            UnderlyingType = underlyingType;
        }
 
        ushort ITypeDefinition.Alignment => UnderlyingType.Alignment;
 
        IGenericMethodParameterReference ITypeReference.AsGenericMethodParameterReference => UnderlyingType.AsGenericMethodParameterReference;
 
        IGenericTypeInstanceReference ITypeReference.AsGenericTypeInstanceReference => UnderlyingType.AsGenericTypeInstanceReference;
 
        IGenericTypeParameterReference ITypeReference.AsGenericTypeParameterReference => UnderlyingType.AsGenericTypeParameterReference;
 
        INamespaceTypeReference ITypeReference.AsNamespaceTypeReference => UnderlyingType.AsNamespaceTypeReference;
 
        INestedTypeReference ITypeReference.AsNestedTypeReference => UnderlyingType.AsNestedTypeReference;
 
        ISpecializedNestedTypeReference ITypeReference.AsSpecializedNestedTypeReference => UnderlyingType.AsSpecializedNestedTypeReference;
 
        IEnumerable<IEventDefinition> ITypeDefinition.GetEvents(EmitContext context) => UnderlyingType.GetEvents(context);
 
        ushort INamedTypeReference.GenericParameterCount => 0;
 
        ushort ITypeDefinition.GenericParameterCount => 0;
 
        IEnumerable<IGenericTypeParameter> ITypeDefinition.GenericParameters => UnderlyingType.GenericParameters;
 
        bool ITypeDefinition.HasDeclarativeSecurity => UnderlyingType.HasDeclarativeSecurity;
 
        bool ITypeDefinition.IsAbstract => UnderlyingType.IsAbstract;
 
        bool ITypeDefinition.IsBeforeFieldInit => UnderlyingType.IsBeforeFieldInit;
 
        bool ITypeDefinition.IsComObject => UnderlyingType.IsComObject;
 
        bool ITypeReference.IsEnum => UnderlyingType.IsEnum;
 
        bool ITypeDefinition.IsGeneric => UnderlyingType.IsGeneric;
 
        bool ITypeDefinition.IsInterface => UnderlyingType.IsInterface;
 
        bool ITypeDefinition.IsDelegate => UnderlyingType.IsDelegate;
 
        bool INamespaceTypeDefinition.IsPublic => UnderlyingType.IsPublic;
 
        bool ITypeDefinition.IsRuntimeSpecial => UnderlyingType.IsRuntimeSpecial;
 
        bool ITypeDefinition.IsSealed => UnderlyingType.IsSealed;
 
        bool ITypeDefinition.IsSerializable => UnderlyingType.IsSerializable;
 
        bool ITypeDefinition.IsSpecialName => UnderlyingType.IsSpecialName;
 
        bool ITypeReference.IsValueType => UnderlyingType.IsValueType;
 
        bool ITypeDefinition.IsWindowsRuntimeImport => UnderlyingType.IsWindowsRuntimeImport;
 
        LayoutKind ITypeDefinition.Layout => UnderlyingType.Layout;
 
        bool INamedTypeReference.MangleName => UnderlyingType.MangleName;
 
#nullable enable
        string? INamedTypeReference.AssociatedFileIdentifier => UnderlyingType.AssociatedFileIdentifier;
#nullable disable
 
        string INamedEntity.Name => UnderlyingType.Name;
 
        string INamespaceTypeReference.NamespaceName => UnderlyingType.NamespaceName;
 
        IEnumerable<SecurityAttribute> ITypeDefinition.SecurityAttributes => UnderlyingType.SecurityAttributes;
 
        uint ITypeDefinition.SizeOf => UnderlyingType.SizeOf;
 
        CharSet ITypeDefinition.StringFormat => UnderlyingType.StringFormat;
 
        TypeDefinitionHandle ITypeReference.TypeDef => UnderlyingType.TypeDef;
 
        IDefinition IReference.AsDefinition(EmitContext context) => UnderlyingType.AsDefinition(context);
 
        INamespaceTypeDefinition ITypeReference.AsNamespaceTypeDefinition(EmitContext context) => UnderlyingType.AsNamespaceTypeDefinition(context);
 
        INestedTypeDefinition ITypeReference.AsNestedTypeDefinition(EmitContext context) => UnderlyingType.AsNestedTypeDefinition(context);
 
        ITypeDefinition ITypeReference.AsTypeDefinition(EmitContext context) => UnderlyingType.AsTypeDefinition(context);
 
        void IReference.Dispatch(MetadataVisitor visitor) => UnderlyingType.Dispatch(visitor);
 
        IEnumerable<ICustomAttribute> IReference.GetAttributes(EmitContext context) => UnderlyingType.GetAttributes(context);
 
        ITypeReference ITypeDefinition.GetBaseClass(EmitContext context) => null;
 
        IEnumerable<Cci.MethodImplementation> ITypeDefinition.GetExplicitImplementationOverrides(EmitContext context) => UnderlyingType.GetExplicitImplementationOverrides(context);
 
        IEnumerable<IFieldDefinition> ITypeDefinition.GetFields(EmitContext context) => UnderlyingType.GetFields(context);
 
        IEnumerable<IMethodDefinition> ITypeDefinition.GetMethods(EmitContext context) => UnderlyingType.GetMethods(context);
 
        IEnumerable<INestedTypeDefinition> ITypeDefinition.GetNestedTypes(EmitContext context) => UnderlyingType.GetNestedTypes(context);
 
        IEnumerable<IPropertyDefinition> ITypeDefinition.GetProperties(EmitContext context) => UnderlyingType.GetProperties(context);
 
        ITypeDefinition ITypeReference.GetResolvedType(EmitContext context) => UnderlyingType.GetResolvedType(context);
 
        IUnitReference INamespaceTypeReference.GetUnit(EmitContext context) => UnderlyingType.GetUnit(context);
 
        IEnumerable<TypeReferenceWithAttributes> ITypeDefinition.Interfaces(EmitContext context) => UnderlyingType.Interfaces(context);
 
        Cci.PrimitiveTypeCode ITypeReference.TypeCode => UnderlyingType.TypeCode;
 
        Symbols.ISymbolInternal IReference.GetInternalSymbol() => null;
 
        public sealed override bool Equals(object obj)
        {
            // It is not supported to rely on default equality of these Cci objects, an explicit way to compare and hash them should be used.
            throw Roslyn.Utilities.ExceptionUtilities.Unreachable();
        }
 
        public sealed override int GetHashCode()
        {
            // It is not supported to rely on default equality of these Cci objects, an explicit way to compare and hash them should be used.
            throw Roslyn.Utilities.ExceptionUtilities.Unreachable();
        }
    }
}