From ab708b80466dbca5a9a18cb0a933f992916e783c Mon Sep 17 00:00:00 2001 From: tmat Date: Fri, 24 Jan 2025 08:36:48 -0800 Subject: [PATCH] Add back intenral EE APIs used by the debugger until the debugger switches to the new overloads --- .../ExpressionCompiler/EvaluationContext.cs | 11 +++++++++++ .../Source/ExpressionCompiler/MetadataBlock.cs | 18 ++++++++---------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/src/ExpressionEvaluator/CSharp/Source/ExpressionCompiler/EvaluationContext.cs b/src/ExpressionEvaluator/CSharp/Source/ExpressionCompiler/EvaluationContext.cs index 008ed555c6854..d074738506645 100644 --- a/src/ExpressionEvaluator/CSharp/Source/ExpressionCompiler/EvaluationContext.cs +++ b/src/ExpressionEvaluator/CSharp/Source/ExpressionCompiler/EvaluationContext.cs @@ -91,6 +91,17 @@ internal static EvaluationContext CreateTypeContext( methodDebugInfo: MethodDebugInfo.None); } + // Used by VS debugger (/src/debugger/ProductionDebug/CodeAnalysis/CodeAnalysis/ExpressionEvaluator.cs) + internal static EvaluationContext CreateMethodContext( + ImmutableArray metadataBlocks, + object symReader, + Guid moduleId, + int methodToken, + int methodVersion, + uint ilOffset, + int localSignatureToken) + => CreateMethodContext(metadataBlocks, symReader, new ModuleId(moduleId, ""), methodToken, methodVersion, ilOffset, localSignatureToken); + /// /// Create a context for evaluating expressions within a method scope. /// diff --git a/src/ExpressionEvaluator/Core/Source/ExpressionCompiler/MetadataBlock.cs b/src/ExpressionEvaluator/Core/Source/ExpressionCompiler/MetadataBlock.cs index afb5bde071fd5..8d5f4a684eb8b 100644 --- a/src/ExpressionEvaluator/Core/Source/ExpressionCompiler/MetadataBlock.cs +++ b/src/ExpressionEvaluator/Core/Source/ExpressionCompiler/MetadataBlock.cs @@ -12,34 +12,32 @@ namespace Microsoft.CodeAnalysis.ExpressionEvaluator /// Module metadata block /// [DebuggerDisplay("{GetDebuggerDisplay(), nq}")] - internal readonly struct MetadataBlock : IEquatable + internal readonly struct MetadataBlock(ModuleId moduleId, Guid generationId, IntPtr pointer, int size) : IEquatable { /// /// Module id. /// - internal readonly ModuleId ModuleId; + internal readonly ModuleId ModuleId = moduleId; /// /// Module generation id. /// - internal readonly Guid GenerationId; + internal readonly Guid GenerationId = generationId; /// /// Pointer to memory block managed by the caller. /// - internal readonly IntPtr Pointer; + internal readonly IntPtr Pointer = pointer; /// /// Size of memory block. /// - internal readonly int Size; + internal readonly int Size = size; - internal MetadataBlock(ModuleId moduleId, Guid generationId, IntPtr pointer, int size) + // Used by VS debugger (/src/debugger/ProductionDebug/CodeAnalysis/CodeAnalysis/ExpressionEvaluator.cs) + internal MetadataBlock(Guid moduleId, Guid generationId, IntPtr pointer, int size) + : this(new ModuleId(moduleId, ""), generationId, pointer, size) { - ModuleId = moduleId; - GenerationId = generationId; - Pointer = pointer; - Size = size; } public bool Equals(MetadataBlock other)