pi-lens
Version:
Real-time code feedback for pi — LSP, linters, formatters, type-checking, structural analysis & booboo
54 lines (43 loc) • 1.17 kB
YAML
# Variable Shadowing
# Detects when a local variable name shadows a function parameter
id: variable-shadowing
name: Variable Shadowing
severity: warning
category: maintainability
defect_class: safety
inline_tier: review
language: typescript
message: "Variable '{{NAME}}' shadows a parameter — use a distinct name"
description: |
Declaring a variable with the same name as a parameter makes it impossible
to tell which binding is being used.
✅ FIX: Rename the inner variable to something descriptive.
query: |
(function_declaration
parameters: (formal_parameters
(required_parameter
pattern: (identifier) @PARAM))
body: (statement_block
(lexical_declaration
(variable_declarator
name: (identifier) @NAME))))
metavars:
- PARAM
- NAME
post_filter: name_matches_param
has_fix: false
tags:
- maintainability
- readability
- variable-shadowing
examples:
bad: |
function process(data) {
const data = transform(data); // ← shadows parameter
return data;
}
good: |
function process(data) {
const transformed = transform(data);
return transformed;
}