Package org.openrewrite.csharp.tree
Class Cs.SlicePattern
java.lang.Object
org.openrewrite.csharp.tree.Cs.SlicePattern
- All Implemented Interfaces:
Cs,Cs.Pattern,org.openrewrite.java.tree.Expression,org.openrewrite.java.tree.J,org.openrewrite.Tree
- Enclosing interface:
- Cs
Represents a C# slice pattern that matches sequences with arbitrary elements between fixed elements.
For example:
// Simple slice pattern
if (array is [1, .., 5])
// Multiple elements before and after
if (array is [1, 2, .., 8, 9])
// Just prefix elements
if (array is [1, 2, ..])
// Just suffix elements
if (array is [.., 8, 9])
// In switch expressions
return array switch {
[var first, .., var last] => $"{first}..{last}",
[var single] => single.ToString(),
[] => "empty"
};
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.openrewrite.csharp.tree.Cs
Cs.AliasQualifiedName, Cs.AllowsConstraint, Cs.AllowsConstraintClause, Cs.AnnotatedStatement, Cs.Argument, Cs.ArrayRankSpecifier, Cs.ArrayType, Cs.AssignmentOperation, Cs.AttributeList, Cs.AwaitExpression, Cs.Binary, Cs.BinaryPattern, Cs.BlockScopeNamespaceDeclaration, Cs.CasePatternSwitchLabel, Cs.CheckedStatement, Cs.ClassDeclaration, Cs.ClassOrStructConstraint, Cs.CollectionExpression, Cs.CompilationUnit, Cs.ConstantPattern, Cs.Constructor, Cs.ConstructorConstraint, Cs.ConstructorInitializer, Cs.ConversionOperatorDeclaration, Cs.DeclarationExpression, Cs.DefaultConstraint, Cs.DefaultExpression, Cs.DefaultSwitchLabel, Cs.DelegateDeclaration, Cs.DestructorDeclaration, Cs.DiscardPattern, Cs.DiscardVariableDesignation, Cs.EnumDeclaration, Cs.EnumMemberDeclaration, Cs.ExpressionStatement, Cs.ExternAlias, Cs.FileScopeNamespaceDeclaration, Cs.FixedStatement, Cs.ForEachVariableLoop, Cs.FromClause, Cs.GroupClause, Cs.ImplicitElementAccess, Cs.IndexerDeclaration, Cs.InitializerExpression, Cs.InterpolatedString, Cs.Interpolation, Cs.IsPattern, Cs.JoinClause, Cs.JoinIntoClause, Cs.Keyword, Cs.Lambda, Cs.LetClause, Cs.ListPattern, Cs.LockStatement, Cs.MethodDeclaration, Cs.NewClass, Cs.NullSafeExpression, Cs.OrderByClause, Cs.Ordering, Cs.ParenthesizedPattern, Cs.ParenthesizedVariableDesignation, Cs.Pattern, Cs.PositionalPatternClause, Cs.PropertyDeclaration, Cs.PropertyPatternClause, Cs.QueryBody, Cs.QueryClause, Cs.QueryContinuation, Cs.QueryExpression, Cs.RangeExpression, Cs.RecursivePattern, Cs.RefStructConstraint, Cs.RelationalPattern, Cs.SelectClause, Cs.SelectOrGroupClause, Cs.SingleVariableDesignation, Cs.SlicePattern, Cs.StatementExpression, Cs.Subpattern, Cs.SwitchExpression, Cs.SwitchExpressionArm, Cs.SwitchLabel, Cs.SwitchSection, Cs.SwitchStatement, Cs.TupleElement, Cs.TupleExpression, Cs.TupleType, Cs.TypeConstraint, Cs.TypeParameter, Cs.TypeParameterConstraint, Cs.TypeParameterConstraintClause, Cs.TypePattern, Cs.Unary, Cs.UnaryPattern, Cs.UnsafeStatement, Cs.UsingDirective, Cs.UsingStatement, Cs.VariableDesignation, Cs.VarPattern, Cs.WhereClause, Cs.YieldNested classes/interfaces inherited from interface org.openrewrite.java.tree.J
org.openrewrite.java.tree.J.AnnotatedType, org.openrewrite.java.tree.J.Annotation, org.openrewrite.java.tree.J.ArrayAccess, org.openrewrite.java.tree.J.ArrayDimension, org.openrewrite.java.tree.J.ArrayType, org.openrewrite.java.tree.J.Assert, org.openrewrite.java.tree.J.Assignment, org.openrewrite.java.tree.J.AssignmentOperation, org.openrewrite.java.tree.J.Binary, org.openrewrite.java.tree.J.Block, org.openrewrite.java.tree.J.Break, org.openrewrite.java.tree.J.Case, org.openrewrite.java.tree.J.ClassDeclaration, org.openrewrite.java.tree.J.CompilationUnit, org.openrewrite.java.tree.J.Continue, org.openrewrite.java.tree.J.ControlParentheses<J2 extends org.openrewrite.java.tree.J>, org.openrewrite.java.tree.J.DoWhileLoop, org.openrewrite.java.tree.J.Empty, org.openrewrite.java.tree.J.EnumValue, org.openrewrite.java.tree.J.EnumValueSet, org.openrewrite.java.tree.J.FieldAccess, org.openrewrite.java.tree.J.ForEachLoop, org.openrewrite.java.tree.J.ForLoop, org.openrewrite.java.tree.J.Identifier, org.openrewrite.java.tree.J.If, org.openrewrite.java.tree.J.Import, org.openrewrite.java.tree.J.InstanceOf, org.openrewrite.java.tree.J.IntersectionType, org.openrewrite.java.tree.J.Label, org.openrewrite.java.tree.J.Lambda, org.openrewrite.java.tree.J.Literal, org.openrewrite.java.tree.J.MemberReference, org.openrewrite.java.tree.J.MethodDeclaration, org.openrewrite.java.tree.J.MethodInvocation, org.openrewrite.java.tree.J.Modifier, org.openrewrite.java.tree.J.MultiCatch, org.openrewrite.java.tree.J.NewArray, org.openrewrite.java.tree.J.NewClass, org.openrewrite.java.tree.J.NullableType, org.openrewrite.java.tree.J.Package, org.openrewrite.java.tree.J.ParameterizedType, org.openrewrite.java.tree.J.Parentheses<J2 extends org.openrewrite.java.tree.J>, org.openrewrite.java.tree.J.ParenthesizedTypeTree, org.openrewrite.java.tree.J.Primitive, org.openrewrite.java.tree.J.Return, org.openrewrite.java.tree.J.Switch, org.openrewrite.java.tree.J.SwitchExpression, org.openrewrite.java.tree.J.Synchronized, org.openrewrite.java.tree.J.Ternary, org.openrewrite.java.tree.J.Throw, org.openrewrite.java.tree.J.Try, org.openrewrite.java.tree.J.TypeCast, org.openrewrite.java.tree.J.TypeParameter, org.openrewrite.java.tree.J.TypeParameters, org.openrewrite.java.tree.J.Unary, org.openrewrite.java.tree.J.Unknown, org.openrewrite.java.tree.J.VariableDeclarations, org.openrewrite.java.tree.J.WhileLoop, org.openrewrite.java.tree.J.Wildcard, org.openrewrite.java.tree.J.Yield -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<P> org.openrewrite.java.tree.JacceptCSharp(CSharpVisitor<P> v, P p) org.openrewrite.java.tree.CoordinateBuilder.Expressionorg.openrewrite.java.tree.JavaTypegetType()withType(@Nullable org.openrewrite.java.tree.JavaType type) Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.openrewrite.csharp.tree.Cs
accept, isAcceptableMethods inherited from interface org.openrewrite.java.tree.Expression
getSideEffects, unwrapMethods inherited from interface org.openrewrite.java.tree.J
acceptJava, getComments, getPrefix, print, printTrimmed, withComments, withPrefixMethods inherited from interface org.openrewrite.Tree
cast, getId, getMarkers, isScope, print, print, print, printer, printTrimmed, printTrimmed, printTrimmed, withId, withMarkers
-
Constructor Details
-
SlicePattern
public SlicePattern()
-
-
Method Details
-
getType
public org.openrewrite.java.tree.JavaType getType()- Specified by:
getTypein interfaceorg.openrewrite.java.tree.Expression
-
withType
- Specified by:
withTypein interfaceorg.openrewrite.java.tree.Expression
-
acceptCSharp
- Specified by:
acceptCSharpin interfaceCs
-
getCoordinates
public org.openrewrite.java.tree.CoordinateBuilder.Expression getCoordinates()- Specified by:
getCoordinatesin interfaceorg.openrewrite.java.tree.Expression
-