未验证 提交 19623b8d 编写于 作者: A Andy Gocke 提交者: GitHub

Make '^' operation nodes internal (#32918)

上级 e70bf116
......@@ -7937,7 +7937,7 @@ void M(int arg)
Operand:
ILiteralOperation (OperationKind.Literal, Type: System.Int32, Constant: 0) (Syntax: '0')
RightOperand:
IFromEndIndexOperation (OperationKind.FromEndIndex, Type: System.Index) (Syntax: '^1')
IFromEndIndexOperation (OperationKind.None, Type: System.Index) (Syntax: '^1')
Operand:
ILiteralOperation (OperationKind.Literal, Type: System.Int32, Constant: 1) (Syntax: '1')
";
......@@ -8079,7 +8079,7 @@ void M(int? start, int? end)
Operand:
IParameterReferenceOperation: start (OperationKind.ParameterReference, Type: System.Int32?) (Syntax: 'start')
RightOperand:
IFromEndIndexOperation (IsLifted) (OperationKind.FromEndIndex, Type: System.Index?) (Syntax: '^end')
IFromEndIndexOperation (IsLifted) (OperationKind.None, Type: System.Index?) (Syntax: '^end')
Operand:
IParameterReferenceOperation: end (OperationKind.ParameterReference, Type: System.Int32?) (Syntax: 'end')
";
......
......@@ -34,7 +34,7 @@ void M(int arg)
IVariableDeclaratorOperation (Symbol: System.Index x) (OperationKind.VariableDeclarator, Type: null) (Syntax: 'x = ^arg')
Initializer:
IVariableInitializerOperation (OperationKind.VariableInitializer, Type: null) (Syntax: '= ^arg')
IFromEndIndexOperation (OperationKind.FromEndIndex, Type: System.Index) (Syntax: '^arg')
IFromEndIndexOperation (OperationKind.None, Type: System.Index) (Syntax: '^arg')
Operand:
IParameterReferenceOperation: arg (OperationKind.ParameterReference, Type: System.Int32) (Syntax: 'arg')
Initializer:
......@@ -60,7 +60,7 @@ void M(int arg)
Left:
ILocalReferenceOperation: x (IsDeclaration: True) (OperationKind.LocalReference, Type: System.Index, IsImplicit) (Syntax: 'x = ^arg')
Right:
IFromEndIndexOperation (OperationKind.FromEndIndex, Type: System.Index) (Syntax: '^arg')
IFromEndIndexOperation (OperationKind.None, Type: System.Index) (Syntax: '^arg')
Operand:
IParameterReferenceOperation: arg (OperationKind.ParameterReference, Type: System.Int32) (Syntax: 'arg')
......
......@@ -3629,7 +3629,7 @@ void M(int arg)
}").VerifyDiagnostics();
string expectedOperationTree = @"
IFromEndIndexOperation (OperationKind.FromEndIndex, Type: System.Index) (Syntax: '^arg')
IFromEndIndexOperation (OperationKind.None, Type: System.Index) (Syntax: '^arg')
Operand:
IParameterReferenceOperation: arg (OperationKind.ParameterReference, Type: System.Int32) (Syntax: 'arg')
";
......@@ -3652,7 +3652,7 @@ void M(int? arg)
}").VerifyDiagnostics();
string expectedOperationTree = @"
IFromEndIndexOperation (IsLifted) (OperationKind.FromEndIndex, Type: System.Index?) (Syntax: '^arg')
IFromEndIndexOperation (IsLifted) (OperationKind.None, Type: System.Index?) (Syntax: '^arg')
Operand:
IParameterReferenceOperation: arg (OperationKind.ParameterReference, Type: System.Int32?) (Syntax: 'arg')
";
......@@ -3675,7 +3675,7 @@ void M(byte arg)
}").VerifyDiagnostics();
string expectedOperationTree = @"
IFromEndIndexOperation (OperationKind.FromEndIndex, Type: System.Index) (Syntax: '^arg')
IFromEndIndexOperation (OperationKind.None, Type: System.Index) (Syntax: '^arg')
Operand:
IConversionOperation (TryCast: False, Unchecked) (OperationKind.Conversion, Type: System.Int32, IsImplicit) (Syntax: 'arg')
Conversion: CommonConversion (Exists: True, IsIdentity: False, IsNumeric: True, IsReference: False, IsUserDefined: False) (MethodSymbol: null)
......
......@@ -6567,7 +6567,7 @@ public override IOperation VisitDelegateCreation(IDelegateCreationOperation oper
operation.Syntax, operation.Type, operation.ConstantValue, IsImplicit(operation));
}
public override IOperation VisitFromEndIndexOperation(IFromEndIndexOperation operation, int? argument)
internal override IOperation VisitFromEndIndexOperation(IFromEndIndexOperation operation, int? argument)
{
return new FromEndIndexOperation(operation.IsLifted, semanticModel: null, operation.Syntax, operation.Type, Visit(operation.Operand), operation.Symbol, isImplicit: IsImplicit(operation));
}
......
......@@ -12,7 +12,7 @@ namespace Microsoft.CodeAnalysis.Operations
/// <remarks>
/// This interface is reserved for implementation by its associated APIs. We reserve the right to change it in the future.
/// </remarks>
public interface IFromEndIndexOperation : IOperation
internal interface IFromEndIndexOperation : IOperation
{
/// <summary>
/// The operand.
......
......@@ -625,7 +625,7 @@ public override IOperation VisitStaticLocalInitializationSemaphore(IStaticLocalI
throw ExceptionUtilities.Unreachable;
}
public override IOperation VisitFromEndIndexOperation(IFromEndIndexOperation operation, object argument)
internal override IOperation VisitFromEndIndexOperation(IFromEndIndexOperation operation, object argument)
{
return new FromEndIndexOperation(operation.IsLifted, ((Operation)operation).OwningSemanticModel, operation.Syntax, operation.Type, Visit(operation.Operand), operation.Symbol, operation.IsImplicit);
}
......
......@@ -227,8 +227,8 @@ public enum OperationKind
/// <summary>Indicates an <see cref="IRangeOperation"/>.</summary>
Range = 0x63,
/// <summary>Indicates an <see cref="IFromEndIndexOperation"/>.</summary>
FromEndIndex = 0x64,
// Unused, FromEndIndex will be a unary operator: https://github.com/dotnet/roslyn/pull/32918
//FromEndIndex = 0x64,
/// <summary>Indicates an <see cref="IReDimOperation"/>.</summary>
ReDim = 0x65,
/// <summary>Indicates an <see cref="IReDimClauseOperation"/>.</summary>
......
......@@ -9401,7 +9401,7 @@ public override IObjectOrCollectionInitializerOperation Initializer
internal abstract class BaseFromEndIndexOperation : Operation, IFromEndIndexOperation
{
protected BaseFromEndIndexOperation(bool isLifted, SemanticModel semanticModel, SyntaxNode syntax, ITypeSymbol type, IMethodSymbol symbol, bool isImplicit) :
base(OperationKind.FromEndIndex, semanticModel, syntax, type, constantValue: default, isImplicit: isImplicit)
base(OperationKind.None, semanticModel, syntax, type, constantValue: default, isImplicit: isImplicit)
{
IsLifted = isLifted;
Symbol = symbol;
......
......@@ -585,7 +585,7 @@ public virtual void VisitStaticLocalInitializationSemaphore(IStaticLocalInitiali
DefaultVisit(operation);
}
public virtual void VisitFromEndIndexOperation(IFromEndIndexOperation operation)
internal virtual void VisitFromEndIndexOperation(IFromEndIndexOperation operation)
{
DefaultVisit(operation);
}
......@@ -1193,7 +1193,7 @@ public virtual TResult VisitStaticLocalInitializationSemaphore(IStaticLocalIniti
return DefaultVisit(operation, argument);
}
public virtual TResult VisitFromEndIndexOperation(IFromEndIndexOperation operation, TArgument argument)
internal virtual TResult VisitFromEndIndexOperation(IFromEndIndexOperation operation, TArgument argument)
{
return DefaultVisit(operation, argument);
}
......
......@@ -5,7 +5,6 @@ Microsoft.CodeAnalysis.ITypeSymbol.IsUnmanagedType.get -> bool
Microsoft.CodeAnalysis.OperationKind.Binary = 32 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.ConstructorBody = 89 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.DiscardPattern = 104 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.FromEndIndex = 100 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.MethodBody = 88 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.Range = 99 -> Microsoft.CodeAnalysis.OperationKind
Microsoft.CodeAnalysis.OperationKind.RecursivePattern = 103 -> Microsoft.CodeAnalysis.OperationKind
......@@ -168,10 +167,6 @@ Microsoft.CodeAnalysis.Operations.ICoalesceOperation.ValueConversion.get -> Micr
Microsoft.CodeAnalysis.Operations.IEventAssignmentOperation.EventReference.get -> Microsoft.CodeAnalysis.IOperation
Microsoft.CodeAnalysis.Operations.IForLoopOperation.ConditionLocals.get -> System.Collections.Immutable.ImmutableArray<Microsoft.CodeAnalysis.ILocalSymbol>
Microsoft.CodeAnalysis.Operations.IForToLoopOperation.IsChecked.get -> bool
Microsoft.CodeAnalysis.Operations.IFromEndIndexOperation
Microsoft.CodeAnalysis.Operations.IFromEndIndexOperation.IsLifted.get -> bool
Microsoft.CodeAnalysis.Operations.IFromEndIndexOperation.Operand.get -> Microsoft.CodeAnalysis.IOperation
Microsoft.CodeAnalysis.Operations.IFromEndIndexOperation.Symbol.get -> Microsoft.CodeAnalysis.IMethodSymbol
Microsoft.CodeAnalysis.Operations.IInstanceReferenceOperation.ReferenceKind.get -> Microsoft.CodeAnalysis.Operations.InstanceReferenceKind
Microsoft.CodeAnalysis.Operations.ILoopOperation.ContinueLabel.get -> Microsoft.CodeAnalysis.ILabelSymbol
Microsoft.CodeAnalysis.Operations.ILoopOperation.ExitLabel.get -> Microsoft.CodeAnalysis.ILabelSymbol
......@@ -213,7 +208,6 @@ virtual Microsoft.CodeAnalysis.Operations.OperationVisitor.VisitDiscardPattern(M
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor.VisitFlowAnonymousFunction(Microsoft.CodeAnalysis.FlowAnalysis.IFlowAnonymousFunctionOperation operation) -> void
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor.VisitFlowCapture(Microsoft.CodeAnalysis.FlowAnalysis.IFlowCaptureOperation operation) -> void
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor.VisitFlowCaptureReference(Microsoft.CodeAnalysis.FlowAnalysis.IFlowCaptureReferenceOperation operation) -> void
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor.VisitFromEndIndexOperation(Microsoft.CodeAnalysis.Operations.IFromEndIndexOperation operation) -> void
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor.VisitIsNull(Microsoft.CodeAnalysis.FlowAnalysis.IIsNullOperation operation) -> void
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor.VisitRangeOperation(Microsoft.CodeAnalysis.Operations.IRangeOperation operation) -> void
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor.VisitReDim(Microsoft.CodeAnalysis.Operations.IReDimOperation operation) -> void
......@@ -228,7 +222,6 @@ virtual Microsoft.CodeAnalysis.Operations.OperationVisitor<TArgument, TResult>.V
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor<TArgument, TResult>.VisitFlowAnonymousFunction(Microsoft.CodeAnalysis.FlowAnalysis.IFlowAnonymousFunctionOperation operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor<TArgument, TResult>.VisitFlowCapture(Microsoft.CodeAnalysis.FlowAnalysis.IFlowCaptureOperation operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor<TArgument, TResult>.VisitFlowCaptureReference(Microsoft.CodeAnalysis.FlowAnalysis.IFlowCaptureReferenceOperation operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor<TArgument, TResult>.VisitFromEndIndexOperation(Microsoft.CodeAnalysis.Operations.IFromEndIndexOperation operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor<TArgument, TResult>.VisitIsNull(Microsoft.CodeAnalysis.FlowAnalysis.IIsNullOperation operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor<TArgument, TResult>.VisitRangeOperation(Microsoft.CodeAnalysis.Operations.IRangeOperation operation, TArgument argument) -> TResult
virtual Microsoft.CodeAnalysis.Operations.OperationVisitor<TArgument, TResult>.VisitReDim(Microsoft.CodeAnalysis.Operations.IReDimOperation operation, TArgument argument) -> TResult
......
......@@ -1800,7 +1800,6 @@ private static bool CanBeInControlFlowGraph(IOperation n)
case OperationKind.Discard:
case OperationKind.ReDim:
case OperationKind.ReDimClause:
case OperationKind.FromEndIndex:
case OperationKind.Range:
case OperationKind.RecursivePattern:
case OperationKind.DiscardPattern:
......
......@@ -1878,7 +1878,7 @@ public override void VisitStaticLocalInitializationSemaphore(IStaticLocalInitial
LogCommonPropertiesAndNewLine(operation);
}
public override void VisitFromEndIndexOperation(IFromEndIndexOperation operation)
internal override void VisitFromEndIndexOperation(IFromEndIndexOperation operation)
{
LogString(nameof(IFromEndIndexOperation));
......
......@@ -1421,9 +1421,9 @@ public override void VisitStaticLocalInitializationSemaphore(IStaticLocalInitial
Assert.True(operation.Local.IsStatic);
}
public override void VisitFromEndIndexOperation(IFromEndIndexOperation operation)
internal override void VisitFromEndIndexOperation(IFromEndIndexOperation operation)
{
Assert.Equal(OperationKind.FromEndIndex, operation.Kind);
Assert.Equal(OperationKind.None, operation.Kind);
Assert.Same(operation.Operand, operation.Children.Single());
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册