// 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. namespace Microsoft.CodeAnalysis.Shared.Utilities; internal interface ISpeculationAnalyzer { /// <summary> /// The original expression that is being replaced by <see cref="ReplacedExpression"/>. This will be in the /// <see cref="SemanticModel.SyntaxTree"/> that <see cref="OriginalSemanticModel"/> points at. /// </summary> SyntaxNode OriginalExpression { get; } /// <summary> /// The new node that <see cref="OriginalExpression"/>n was replaced with. This will be in the <see /// cref="SemanticModel.SyntaxTree"/> that <see cref="SpeculativeSemanticModel"/> points at. /// </summary> SyntaxNode ReplacedExpression { get; } /// <summary> /// The original semantic model that <see cref="OriginalExpression"/> was contained in. /// </summary> SemanticModel OriginalSemanticModel { get; } /// <summary> /// A forked semantic model off of <see cref="OriginalSemanticModel"/>. In that model <see /// cref="OriginalExpression"/> will have been replaced with <see cref="ReplacedExpression"/>. /// </summary> SemanticModel SpeculativeSemanticModel { get; } } |