@@ -128,11 +128,13 @@ const tooling::Replacements &WhitespaceManager::generateReplacements() {
128128void WhitespaceManager::calculateLineBreakInformation () {
129129 Changes[0 ].PreviousEndOfTokenColumn = 0 ;
130130 Change *LastOutsideTokenChange = &Changes[0 ];
131- for (unsigned i = 1 , e = Changes.size (); i != e; ++i) {
131+ for (unsigned I = 1 , e = Changes.size (); I != e; ++I) {
132+ auto &C = Changes[I];
133+ auto &P = Changes[I - 1 ];
132134 SourceLocation OriginalWhitespaceStart =
133- Changes[i] .OriginalWhitespaceRange .getBegin ();
135+ C .OriginalWhitespaceRange .getBegin ();
134136 SourceLocation PreviousOriginalWhitespaceEnd =
135- Changes[i - 1 ] .OriginalWhitespaceRange .getEnd ();
137+ P .OriginalWhitespaceRange .getEnd ();
136138 unsigned OriginalWhitespaceStartOffset =
137139 SourceMgr.getFileOffset (OriginalWhitespaceStart);
138140 unsigned PreviousOriginalWhitespaceEndOffset =
@@ -167,31 +169,26 @@ void WhitespaceManager::calculateLineBreakInformation() {
167169 // line of the token.
168170 auto NewlinePos = Text.find_first_of (' \n ' );
169171 if (NewlinePos == StringRef::npos) {
170- Changes[i - 1 ].TokenLength = OriginalWhitespaceStartOffset -
171- PreviousOriginalWhitespaceEndOffset +
172- Changes[i].PreviousLinePostfix .size () +
173- Changes[i - 1 ].CurrentLinePrefix .size ();
172+ P.TokenLength = OriginalWhitespaceStartOffset -
173+ PreviousOriginalWhitespaceEndOffset +
174+ C.PreviousLinePostfix .size () + P.CurrentLinePrefix .size ();
174175 } else {
175- Changes[i - 1 ].TokenLength =
176- NewlinePos + Changes[i - 1 ].CurrentLinePrefix .size ();
176+ P.TokenLength = NewlinePos + P.CurrentLinePrefix .size ();
177177 }
178178
179179 // If there are multiple changes in this token, sum up all the changes until
180180 // the end of the line.
181- if (Changes[i - 1 ].IsInsideToken && Changes[i - 1 ].NewlinesBefore == 0 ) {
182- LastOutsideTokenChange->TokenLength +=
183- Changes[i - 1 ].TokenLength + Changes[i - 1 ].Spaces ;
184- } else {
185- LastOutsideTokenChange = &Changes[i - 1 ];
186- }
181+ if (P.IsInsideToken && P.NewlinesBefore == 0 )
182+ LastOutsideTokenChange->TokenLength += P.TokenLength + P.Spaces ;
183+ else
184+ LastOutsideTokenChange = &P;
187185
188- Changes[i].PreviousEndOfTokenColumn =
189- Changes[i - 1 ].StartOfTokenColumn + Changes[i - 1 ].TokenLength ;
186+ C.PreviousEndOfTokenColumn = P.StartOfTokenColumn + P.TokenLength ;
190187
191- Changes[i - 1 ] .IsTrailingComment =
192- (Changes[i] .NewlinesBefore > 0 || Changes[i] .Tok ->is (tok::eof) ||
193- (Changes[i] .IsInsideToken && Changes[i] .Tok ->is (tok::comment))) &&
194- Changes[i - 1 ] .Tok ->is (tok::comment) &&
188+ P .IsTrailingComment =
189+ (C .NewlinesBefore > 0 || C .Tok ->is (tok::eof) ||
190+ (C .IsInsideToken && C .Tok ->is (tok::comment))) &&
191+ P .Tok ->is (tok::comment) &&
195192 // FIXME: This is a dirty hack. The problem is that
196193 // BreakableLineCommentSection does comment reflow changes and here is
197194 // the aligning of trailing comments. Consider the case where we reflow
0 commit comments