A-Streams: Use streams where loops only filter, map or join - #2
Merged
Merged
Conversation
Four loops walk a collection only to keep some of its elements, turn each element into something else, or join the results into a string: finding tasks by keyword, looking up a command by its keyword, listing every keyword, and turning tasks into save lines. Each hides that simple intent behind an accumulator or an index that the reader has to trace. Let's write these four as streams, which name the operation directly (filter, findFirst, map, joining) and leave no accumulator to follow. Loops where a stream would not read more simply stay as they are: Storage.load also counts the lines it skips, decodeSaveField looks one character ahead, Ui.showNumbered needs each task's position, and Task.toSaveLine appends other fields around its loop. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
master now has A-CodeQuality, which makes Task's description private and has TaskList.find read it through getDescription(). This branch rewrote the same loop as a stream that still reads the field directly, so the two changes conflict. Let's keep this branch's stream and have it call getDescription(), so the search stays a stream and the field stays private. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Increment: A-Streams
TaskList#find,CommandType#fromKeyword,CommandType#listKeywordsandStorage#savenow use streams.Storage#load, which also counts skipped lines.🤖 Generated with Claude Code