npm run compile✅ Expected: No compilation errors
git branch --show-current✅ Expected: feature/unreachable-code-phase1
- Open VS Code
- Open file:
test-programs/unreachable-code/test-all-scenarios.clw - Wait 500ms for decorations to apply
Expected Results:
- Lines after
RETURNinSimpleReturnshould be dimmed - Lines in
ConditionalReturnshould NOT be dimmed - ROUTINE content should NOT be dimmed
- Each test scenario should behave as documented in comments
- Open a new
.clwfile - Type:
MyProc PROCEDURE() CODE RETURN MESSAGE('test')
- Observe the MESSAGE line
Expected Results:
- MESSAGE line should appear dimmed (40% opacity)
- Dimming should apply immediately (within 500ms)
- Open VS Code Settings (Ctrl+,)
- Search for "unreachable code"
- Uncheck "Clarion: Unreachable Code > Enabled"
- Check the test file
Expected Results:
- All dimming should disappear
- Re-enabling should restore dimming
- Create a new file:
TestProc PROCEDURE() CODE RETURN MESSAGE('unreachable in proc') MyRoutine ROUTINE MESSAGE('reachable in routine')
Expected Results:
- First MESSAGE should be dimmed
- Second MESSAGE (in ROUTINE) should NOT be dimmed
- Create a new file:
TestProc PROCEDURE() CODE IF x = 1 THEN RETURN END MESSAGE('still reachable')
Expected Results:
- MESSAGE should NOT be dimmed (RETURN was inside IF)
Test with EXIT:
TestProc PROCEDURE()
CODE
EXIT
MESSAGE('unreachable')Test with HALT:
TestProc PROCEDURE()
CODE
HALT
MESSAGE('unreachable')Expected Results:
- Both MESSAGE lines should be dimmed
TestProc PROCEDURE()
CODE
STOP('debug')
MESSAGE('reachable')Expected Results:
- MESSAGE should NOT be dimmed
Proc1 PROCEDURE()
CODE
RETURN
MESSAGE('unreachable in Proc1')
Proc2 PROCEDURE()
CODE
MESSAGE('reachable in Proc2')Expected Results:
- First MESSAGE dimmed
- Second MESSAGE NOT dimmed
ThisWindow.Init PROCEDURE()
CODE
RETURN
MESSAGE('unreachable')Expected Results:
- MESSAGE should be dimmed
- Create a file with 1000+ lines
- Add RETURN + unreachable code at line 500
- Observe decoration speed
Expected Results:
- Decorations apply within 500ms
- No UI lag or freezing
- CPU usage remains normal
npm testExpected Results:
- All 12 tests should pass
- No test failures
- No console errors
CODE
RETURN
! This comment is unreachable
MESSAGE('also unreachable')Both comment and code should be dimmed.
CODE
RETURN
MESSAGE('unreachable')MESSAGE should be dimmed (blank lines ignored).
CODE
RETURN
MyRoutine ROUTINE
DATA
x LONG
CODE
MESSAGE('reachable')ROUTINE content should NOT be dimmed.
CODE
IF x = 1 THEN RETURN
MESSAGE('reachable')MESSAGE should NOT be dimmed (conditional RETURN).
IF condition THEN
RETURN
END
MESSAGE('reachable')LOOP
IF done THEN
RETURN
END
END
MESSAGE('reachable')CASE x
OF 1
RETURN
END
MESSAGE('reachable')STOP('debug')
MESSAGE('reachable')- Open large file (5000+ lines)
- Make small edits
- Monitor CPU usage
Expected:
- CPU usage < 5% during editing
- No spikes or hangs
- Open 10+ Clarion files
- Monitor memory usage
Expected:
- Memory increase < 50MB total
- No memory leaks
- Type rapidly in a file
- Observe decoration updates
Expected:
- No typing lag
- Decorations update smoothly
- No visual glitches
✅ Primary platform
- Test file opening
- Test decoration rendering
- Test configuration
- Test file opening
- Test decoration rendering
- Test configuration
Test with all Clarion file extensions:
- ✅ .clw
- ✅ .inc
- ✅ .equ
- ✅ .eq
- ✅ .int
- ✅ .txa
- ✅ .txd
Expected:
- Feature works with all file types
- No extension-specific issues
- Enable:
"clarion.unreachableCode.enabled": true - Verify dimming appears
- Disable:
"clarion.unreachableCode.enabled": false - Verify dimming disappears
- Add to workspace settings
- Verify override works
- Test different values per workspace
- Enable prefix highlighting
- Enable comment highlighting
- Enable unreachable code detection
- Verify all work together without conflict
- Open a file in a solution
- Verify LSP features still work:
- Go to Definition
- Hover
- Symbol search
- Verify decorations don't interfere
- Format a document (Shift+Alt+F)
- Verify decorations remain correct after formatting
- Create file with syntax errors
- Verify no crashes
- Verify graceful degradation
- Open 10,000+ line file
- Verify no timeout errors
- Verify no stack overflow
- Quickly switch between multiple files
- Verify decorations update correctly
- No stale decorations
Verify these still work:
- ✅ Code folding
- ✅ Symbol outline
- ✅ Go to definition
- ✅ Hover tooltips
- ✅ Code formatting
- ✅ Syntax highlighting
- ✅ Prefix highlighting
- ✅ Comment highlighting
- IMPLEMENTATION_SUMMARY.md is accurate
- docs/UNREACHABLE_CODE_PHASE1.md is complete
- Code comments are clear
- Examples are correct
- All automated tests pass
- All manual tests completed
- No performance regressions
- No existing features broken
- Documentation reviewed
- Edge cases validated
- Configuration works
- Cross-file types tested
- Error handling verified
- Integration tested
- Does not detect unreachable code after conditional RETURN
- Does not analyze loop reachability
- Does not perform constant folding
- These are acceptable for Phase 1
- Dimming is subtle (40% opacity)
- Works with all color themes
- Does not affect editor performance
When reporting issues, include:
- Code sample that shows the problem
- Expected behavior
- Actual behavior
- VS Code version
- Extension version
- Operating system
Date: _________________ Tester: _________________ Result: ☐ Pass ☐ Fail Notes: _________________