@@ -4,9 +4,9 @@ namespace AspNetCoreAnalyzers
44 using Microsoft . CodeAnalysis ;
55 using Microsoft . CodeAnalysis . Text ;
66
7- public struct StringLiteralSpan : IEquatable < StringLiteralSpan >
7+ public struct Span : IEquatable < Span >
88 {
9- public StringLiteralSpan ( StringLiteral literal , int start , int end )
9+ public Span ( StringLiteral literal , int start , int end )
1010 {
1111 this . Literal = literal ;
1212 this . TextSpan = new TextSpan ( start , end - start ) ;
@@ -20,24 +20,24 @@ public StringLiteralSpan(StringLiteral literal, int start, int end)
2020
2121 public char this [ int index ] => this . Literal . ValueText [ this . TextSpan . Start + index ] ;
2222
23- public static bool operator == ( StringLiteralSpan left , StringLiteralSpan right )
23+ public static bool operator == ( Span left , Span right )
2424 {
2525 return left . Equals ( right ) ;
2626 }
2727
28- public static bool operator != ( StringLiteralSpan left , StringLiteralSpan right )
28+ public static bool operator != ( Span left , Span right )
2929 {
3030 return ! left . Equals ( right ) ;
3131 }
3232
33- public bool Equals ( StringLiteralSpan other )
33+ public bool Equals ( Span other )
3434 {
3535 return this . Literal . Equals ( other . Literal ) && this . TextSpan == other . TextSpan ;
3636 }
3737
3838 public override bool Equals ( object obj )
3939 {
40- return obj is StringLiteralSpan other &&
40+ return obj is Span other &&
4141 this . Equals ( other ) ;
4242 }
4343
@@ -59,7 +59,7 @@ public override string ToString() => this.TextSpan.Length == 0
5959
6060 public Location GetLocation ( int start , int length ) => this . Literal . GetLocation ( new TextSpan ( this . TextSpan . Start + start , length ) ) ;
6161
62- internal StringLiteralSpan Slice ( int start , int end )
62+ internal Span Slice ( int start , int end )
6363 {
6464 if ( start > end )
6565 {
@@ -71,12 +71,12 @@ internal StringLiteralSpan Slice(int start, int end)
7171 throw new InvalidOperationException ( "Expected end to be less than TextSpan.End." ) ;
7272 }
7373
74- return new StringLiteralSpan ( this . Literal , this . TextSpan . Start + start , this . TextSpan . Start + end ) ;
74+ return new Span ( this . Literal , this . TextSpan . Start + start , this . TextSpan . Start + end ) ;
7575 }
7676
77- internal StringLiteralSpan Substring ( int index , int length )
77+ internal Span Substring ( int index , int length )
7878 {
79- return new StringLiteralSpan ( this . Literal , this . TextSpan . Start + index , this . TextSpan . Start + index + length ) ;
79+ return new Span ( this . Literal , this . TextSpan . Start + index , this . TextSpan . Start + index + length ) ;
8080 }
8181
8282 internal int IndexOf ( char value , int startIndex = 0 )
@@ -115,13 +115,13 @@ internal bool Equals(string value, StringComparison comparisonType)
115115
116116 internal bool StartsWith ( string value , StringComparison comparisonType )
117117 {
118- return this . Literal . ValueText . IndexOf ( value , this . TextSpan . Start , comparisonType ) == this . TextSpan . Start ;
118+ return this . Literal . ValueText . IndexOf ( value , this . TextSpan . Start , value . Length , comparisonType ) == this . TextSpan . Start ;
119119 }
120120
121121 internal bool EndsWith ( string value , StringComparison comparisonType )
122122 {
123123 var start = this . TextSpan . End - value . Length ;
124- return this . Literal . ValueText . IndexOf ( value , start , comparisonType ) == start ;
124+ return this . Literal . ValueText . IndexOf ( value , start , value . Length , comparisonType ) == start ;
125125 }
126126 }
127127}
0 commit comments