DbgDotNetCompilationResult CompileExpressionCore(DbgDotNetAlias[] aliases, string expression, DbgEvaluationOptions options, CSharpEvalContextState state, ImmutableArray <MetadataBlock> metadataBlocks, EvaluationContext evalCtx, bool noName, CancellationToken cancellationToken) { state.MetadataContext = new CSharpMetadataContext(metadataBlocks, evalCtx); var compilationFlags = DkmEvaluationFlags.None; if ((options & DbgEvaluationOptions.Expression) != 0) { compilationFlags |= DkmEvaluationFlags.TreatAsExpression; } var compileResult = evalCtx.CompileExpression(expression, compilationFlags, CreateAliases(aliases), out var resultProperties, out var errorMessage); DbgDotNetText name; if (noName) { name = DbgDotNetText.Empty; } else if (compileResult == null || errorMessage != null) { name = CreateErrorName(expression); } else { name = GetExpressionText(state.MetadataContext.EvaluationContext, state.MetadataContext.Compilation, expression, cancellationToken); } return(CreateCompilationResult(expression, compileResult, resultProperties, errorMessage, name)); }
DbgDotNetCompilationResult CompileExpressionCore(DbgDotNetAlias[] aliases, string expression, DbgEvaluationOptions options, CSharpEvalContextState state, EvaluationContext evalCtx, CancellationToken cancellationToken) { state.MetadataContext = new CSharpMetadataContext(evalCtx.Compilation, evalCtx); var compilationFlags = DkmEvaluationFlags.None; if ((options & DbgEvaluationOptions.Expression) != 0) { compilationFlags |= DkmEvaluationFlags.TreatAsExpression; } var compileResult = evalCtx.CompileExpression(expression, compilationFlags, CreateAliases(aliases), out var resultProperties, out var errorMessage); DbgDotNetText name; if ((options & DbgEvaluationOptions.NoName) != 0) { name = DbgDotNetText.Empty; } else if (!(errorMessage is null)) { name = CreateErrorName(expression); }