using Microsoft.CodeAnalysis; using Semmle.Extraction.Kinds; namespace Semmle.Extraction.CSharp.Entities { /// /// Holds all information required to create an Expression entity. /// internal interface IExpressionInfo { Context Context { get; } /// /// The type of the expression. /// AnnotatedTypeSymbol? Type { get; } /// /// The location of the expression. /// Location Location { get; } /// /// The kind of the expression. /// ExprKind Kind { get; } /// /// The parent of the expression. /// IExpressionParentEntity Parent { get; } /// /// The child index of the expression. /// int Child { get; } /// /// Holds if this is an implicit expression. /// bool IsCompilerGenerated { get; } /// /// Gets a string representation of the value. /// null is encoded as the string "null". /// If the expression does not have a value, then this /// is null. /// string? ExprValue { get; } NullableFlowState FlowState { get; } } }