@@ -883,16 +883,16 @@ internal static bool SpanStartsWith<TChar>(ReadOnlySpan<TChar> span, ReadOnlySpa
883883 {
884884 if ( typeof ( TChar ) == typeof ( char ) )
885885 {
886- ReadOnlySpan < char > typedSpan = MemoryMarshal. CreateReadOnlySpan ( ref Unsafe . As < TChar , char > ( ref MemoryMarshal . GetReference ( span ) ) , span . Length ) ;
887- ReadOnlySpan < char > typedValue = MemoryMarshal . CreateReadOnlySpan ( ref Unsafe . As < TChar , char > ( ref MemoryMarshal . GetReference ( value ) ) , value . Length ) ;
886+ ReadOnlySpan < char > typedSpan = MemoryMarshal. Cast < TChar, char > ( span ) ;
887+ ReadOnlySpan < char > typedValue = MemoryMarshal . Cast < TChar , char > ( value ) ;
888888 return typedSpan . StartsWith ( typedValue , comparisonType ) ;
889889 }
890890 else
891891 {
892892 Debug . Assert ( typeof ( TChar ) == typeof ( byte ) ) ;
893893
894- ReadOnlySpan< byte > typedSpan = MemoryMarshal . CreateReadOnlySpan ( ref Unsafe . As < TChar , byte > ( ref MemoryMarshal . GetReference ( span ) ) , span . Length ) ;
895- ReadOnlySpan < byte > typedValue = MemoryMarshal. CreateReadOnlySpan ( ref Unsafe . As < TChar , byte > ( ref MemoryMarshal . GetReference ( value ) ) , value . Length ) ;
894+ ReadOnlySpan < byte > typedSpan = MemoryMarshal . Cast < TChar , byte > ( span ) ;
895+ ReadOnlySpan < byte > typedValue = MemoryMarshal . Cast < TChar , byte > ( value ) ;
896896 return typedSpan . StartsWithUtf8 ( typedValue , comparisonType ) ;
897897 }
898898 }
@@ -903,17 +903,13 @@ internal static ReadOnlySpan<TChar> SpanTrim<TChar>(ReadOnlySpan<TChar> span)
903903 {
904904 if ( typeof ( TChar ) == typeof ( char ) )
905905 {
906- ReadOnlySpan< char > typedSpan = MemoryMarshal. CreateReadOnlySpan( ref Unsafe. As< TChar, char > ( ref MemoryMarshal. GetReference( span) ) , span. Length) ;
907- ReadOnlySpan< char > result = typedSpan. Trim( ) ;
908- return MemoryMarshal. CreateReadOnlySpan( ref Unsafe. As< char , TChar> ( ref MemoryMarshal. GetReference( result) ) , result. Length) ;
906+ return MemoryMarshal . Cast < char , TChar > ( MemoryMarshal . Cast < TChar , char > ( span ) . Trim( ) ) ;
909907 }
910908 else
911909 {
912910 Debug . Assert ( typeof ( TChar ) == typeof ( byte ) ) ;
913911
914- ReadOnlySpan< byte > typedSpan = MemoryMarshal. CreateReadOnlySpan( ref Unsafe. As< TChar, byte > ( ref MemoryMarshal. GetReference( span) ) , span. Length) ;
915- ReadOnlySpan< byte > result = typedSpan. TrimUtf8( ) ;
916- return MemoryMarshal. CreateReadOnlySpan( ref Unsafe. As< byte , TChar> ( ref MemoryMarshal. GetReference( result) ) , result. Length) ;
912+ return MemoryMarshal . Cast < byte , TChar > ( MemoryMarshal . Cast < TChar , byte > ( span ) . TrimUtf8( ) ) ;
917913 }
918914 }
919915
@@ -923,16 +919,16 @@ internal static bool SpanEqualsOrdinalIgnoreCase<TChar>(ReadOnlySpan<TChar> span
923919 {
924920 if ( typeof ( TChar ) == typeof ( char ) )
925921 {
926- ReadOnlySpan< char > typedSpan = MemoryMarshal. CreateReadOnlySpan ( ref Unsafe . As < TChar, char > ( ref MemoryMarshal . GetReference ( span) ) , span . Length ) ;
927- ReadOnlySpan< char > typedValue = MemoryMarshal. CreateReadOnlySpan ( ref Unsafe . As < TChar, char > ( ref MemoryMarshal . GetReference ( value) ) , value . Length ) ;
922+ ReadOnlySpan < char > typedSpan = MemoryMarshal. Cast < TChar, char > ( span ) ;
923+ ReadOnlySpan < char > typedValue = MemoryMarshal . Cast < TChar , char > ( value ) ;
928924 return typedSpan . EqualsOrdinalIgnoreCase ( typedValue ) ;
929925 }
930926 else
931927 {
932928 Debug . Assert ( typeof ( TChar ) == typeof ( byte ) ) ;
933929
934- ReadOnlySpan< byte > typedSpan = MemoryMarshal. CreateReadOnlySpan ( ref Unsafe . As < TChar, byte > ( ref MemoryMarshal . GetReference ( span) ) , span . Length ) ;
935- ReadOnlySpan< byte > typedValue = MemoryMarshal. CreateReadOnlySpan ( ref Unsafe . As < TChar, byte > ( ref MemoryMarshal . GetReference ( value) ) , value . Length ) ;
930+ ReadOnlySpan< byte > typedSpan = MemoryMarshal. Cast < TChar, byte > ( span ) ;
931+ ReadOnlySpan < byte > typedValue = MemoryMarshal . Cast < TChar , byte > ( value ) ;
936932 return typedSpan . EqualsOrdinalIgnoreCaseUtf8 ( typedValue ) ;
937933 }
938934 }
0 commit comments