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

public static final class Cs.SlicePattern extends Object implements Cs.Pattern
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"
     };
 
  • Constructor Details

    • SlicePattern

      public SlicePattern()
  • Method Details

    • getType

      public org.openrewrite.java.tree.JavaType getType()
      Specified by:
      getType in interface org.openrewrite.java.tree.Expression
    • withType

      public Cs.SlicePattern withType(@Nullable org.openrewrite.java.tree.JavaType type)
      Specified by:
      withType in interface org.openrewrite.java.tree.Expression
    • acceptCSharp

      public <P> org.openrewrite.java.tree.J acceptCSharp(CSharpVisitor<P> v, P p)
      Specified by:
      acceptCSharp in interface Cs
    • getCoordinates

      public org.openrewrite.java.tree.CoordinateBuilder.Expression getCoordinates()
      Specified by:
      getCoordinates in interface org.openrewrite.java.tree.Expression