Maintenance: RegisterExpression - Add test coverage for readonly register errors #1490
+52
−0
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.
Area Inspected
Randomly selected and inspected:
vim-engine/src/main/kotlin/com/maddyhome/idea/vim/vimscript/model/expressions/RegisterExpression.ktIssues Found
While reviewing
RegisterExpression.ktand its test coverage, I discovered a significant gap in test coverage:Missing Test Coverage:
assign()method inRegisterExpression.ktcorrectly throws E354 for readonly registers (%, :, ., #, =), but this behavior was not testedChanges Made
Added comprehensive test coverage in
LetCommandRegisterLValueTest.kt:Tests for simple assignment to readonly registers:
@%(current filename register)@:(last command register)@.(last inserted text register)@#(alternate buffer register)@=(expression buffer register)Tests for compound assignment to readonly registers:
@%.=(current filename register with string concatenation)@:.=(last command register with string concatenation)All tests verify that the appropriate E354 error is thrown with the correct error message.
Why This Improves the Code
Code Review Notes
The implementation in
RegisterExpression.ktis sound:The only issue was the missing test coverage, which has now been addressed.
🤖 Generated with Claude Code