internal static CompileResult CompileExpressionWithRetry( ImmutableArray <MetadataBlock> metadataBlocks, string expr, ImmutableArray <Alias> aliases, ExpressionCompiler.CreateContextDelegate createContext, DkmUtilities.GetMetadataBytesPtrFunction getMetaDataBytesPtr, out string errorMessage, out CompilationTestData testData) { var r = ExpressionCompiler.CompileWithRetry( metadataBlocks, DebuggerDiagnosticFormatter.Instance, createContext, (context, diagnostics) => { var td = new CompilationTestData(); ResultProperties resultProperties; var compileResult = context.CompileExpression( expr, DkmEvaluationFlags.TreatAsExpression, aliases, diagnostics, out resultProperties, td); return(new CompileExpressionResult(compileResult, td)); }, getMetaDataBytesPtr, out errorMessage); testData = r.TestData; return(r.CompileResult); }
internal static CompileResult CompileExpressionWithRetry( ImmutableArray <MetadataBlock> metadataBlocks, EvaluationContextBase context, ExpressionCompiler.CompileDelegate <CompileResult> compile, DkmUtilities.GetMetadataBytesPtrFunction getMetaDataBytesPtr, out string errorMessage) { return(ExpressionCompiler.CompileWithRetry( metadataBlocks, DebuggerDiagnosticFormatter.Instance, (blocks, useReferencedModulesOnly) => context, compile, getMetaDataBytesPtr, out errorMessage)); }