@@ -217,7 +217,7 @@ internal static SyntaxTriviaList WithoutLeadingWhitespace(this SyntaxTriviaList
217217 /// <param name="trivia">The trivia to create the list from.</param>
218218 /// <param name="triviaIndex">The index of the trivia in the created trivia list.</param>
219219 /// <returns>The created trivia list.</returns>
220- internal static IReadOnlyList < SyntaxTrivia > GetContainingTriviaList ( SyntaxTrivia trivia , out int triviaIndex )
220+ internal static DualTriviaListHelper GetContainingTriviaList ( SyntaxTrivia trivia , out int triviaIndex )
221221 {
222222 var token = trivia . Token ;
223223 SyntaxTriviaList part1 ;
@@ -249,7 +249,7 @@ internal static IReadOnlyList<SyntaxTrivia> GetContainingTriviaList(SyntaxTrivia
249249 /// <param name="list1">The first part of the new list.</param>
250250 /// <param name="list2">The second part of the new list.</param>
251251 /// <returns>The merged trivia list.</returns>
252- internal static IReadOnlyList < SyntaxTrivia > MergeTriviaLists ( IReadOnlyList < SyntaxTrivia > list1 , IReadOnlyList < SyntaxTrivia > list2 )
252+ internal static DualTriviaListHelper MergeTriviaLists ( SyntaxTriviaList list1 , SyntaxTriviaList list2 )
253253 {
254254 return new DualTriviaListHelper ( list1 , list2 ) ;
255255 }
@@ -403,13 +403,13 @@ private static int BinarySearch(SyntaxTriviaList leadingTrivia, SyntaxTrivia tri
403403 /// <summary>
404404 /// Helper class that merges two SyntaxTriviaLists with (hopefully) the lowest possible performance penalty.
405405 /// </summary>
406- private class DualTriviaListHelper : IReadOnlyList < SyntaxTrivia >
406+ internal struct DualTriviaListHelper : IReadOnlyList < SyntaxTrivia >
407407 {
408- private readonly IReadOnlyList < SyntaxTrivia > part1 ;
408+ private readonly SyntaxTriviaList part1 ;
409409 private readonly int part1Count ;
410- private readonly IReadOnlyList < SyntaxTrivia > part2 ;
410+ private readonly SyntaxTriviaList part2 ;
411411
412- public DualTriviaListHelper ( IReadOnlyList < SyntaxTrivia > part1 , IReadOnlyList < SyntaxTrivia > part2 )
412+ public DualTriviaListHelper ( SyntaxTriviaList part1 , SyntaxTriviaList part2 )
413413 {
414414 this . part1 = part1 ;
415415 this . part2 = part2 ;
@@ -455,6 +455,16 @@ IEnumerator IEnumerable.GetEnumerator()
455455 {
456456 return this . GetEnumerator ( ) ;
457457 }
458+
459+ public SyntaxTrivia First ( )
460+ {
461+ return this [ 0 ] ;
462+ }
463+
464+ public SyntaxTrivia Last ( )
465+ {
466+ return this [ this . Count - 1 ] ;
467+ }
458468 }
459469 }
460470}
0 commit comments