Skip to content

Commit ec2285e

Browse files
committed
Fix: collect used didn't check attrs. & add tests.
1 parent 777b1e4 commit ec2285e

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

lib/rules/no-unused-vars.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,13 @@ function collectUsed (node, used) {
2020
})
2121
}
2222

23+
if (node.type === 'VAttribute') {
24+
collectUsed(node.value, used)
25+
}
26+
2327
if (node.type === 'VElement') {
2428
node.children.forEach(child => collectUsed(child, used))
29+
node.startTag.attributes.forEach(attr => collectUsed(attr, used))
2530
}
2631

2732
return used

tests/lib/rules/no-unused-vars.js

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,24 @@ const tester = new RuleTester({
2424
tester.run('no-unused-vars', rule, {
2525
valid: [
2626
{
27-
filename: 'test.vue',
2827
code: '<template><ol v-for="i in 5"><li>{{i}}</li></ol></template>'
2928
},
3029
{
31-
filename: 'test.vue',
30+
code: '<template><ol v-for="i in 5"><li :prop="i"></li></ol></template>'
31+
},
32+
{
3233
code: '<template scope="props">{{props}}</template>'
34+
},
35+
{
36+
code: '<template scope="props"><span v-if="props"></span></template>'
3337
}
3438
],
3539
invalid: [
3640
{
37-
filename: 'test.vue',
38-
code: '<template><ol v-for="i in 5"></ol></template>',
41+
code: '<template><ol v-for="i in 5"><li></li></ol></template>',
3942
errors: ['\'i\' is defined but never used.']
4043
},
4144
{
42-
filename: 'test.vue',
4345
code: '<template scope="props"></template>',
4446
errors: ['\'props\' is defined but never used.']
4547
}

0 commit comments

Comments
 (0)