/* Copyright (C) 2014-2019 de4dot@gmail.com This file is part of dnSpy dnSpy is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. dnSpy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with dnSpy. If not, see . */ using System; using System.Collections.ObjectModel; using dnSpy.Debugger.DotNet.Metadata; namespace dnSpy.Contracts.Debugger.DotNet.Evaluation { /// /// Alias /// public readonly struct DbgDotNetAliasInfo { /// /// Alias kind /// public DbgDotNetAliasInfoKind Kind { get; } /// /// Alias type /// public DmdType Type { get; } /// /// Alias id /// public uint Id { get; } /// /// Custom type info understood by the EE or null /// public readonly ReadOnlyCollection? CustomTypeInfo; /// /// Custom type info ID /// public readonly Guid CustomTypeInfoId; /// /// Constructor /// /// Alias kind /// Alias type /// Alias id /// Custom type info ID /// Custom type info understood by the EE or null public DbgDotNetAliasInfo(DbgDotNetAliasInfoKind kind, DmdType type, uint id, Guid customTypeInfoId, ReadOnlyCollection? customTypeInfo) { Kind = kind; Type = type ?? throw new ArgumentNullException(nameof(type)); Id = id; CustomTypeInfoId = customTypeInfoId; CustomTypeInfo = customTypeInfo; } } /// /// Alias kind /// public enum DbgDotNetAliasInfoKind { /// /// An exception, eg. "$exception" /// Exception, /// /// A stowed exception, eg. "$stowedexception" /// StowedException, /// /// A return value, eg. "$ReturnValue1" /// ReturnValue, } }