Skip to content

Commit a96b05f

Browse files
authored
Update: add end location to report in consistent-return (refs #12334) (#14798)
* Update: add end location to report in `consistent-return` * Update: report end location for `function` keyword
1 parent e0e8e30 commit a96b05f

2 files changed

Lines changed: 94 additions & 24 deletions

File tree

lib/rules/consistent-return.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -104,18 +104,18 @@ module.exports = {
104104
} else if (node.type === "ArrowFunctionExpression") {
105105

106106
// `=>` token
107-
loc = context.getSourceCode().getTokenBefore(node.body, astUtils.isArrowToken).loc.start;
107+
loc = context.getSourceCode().getTokenBefore(node.body, astUtils.isArrowToken).loc;
108108
} else if (
109109
node.parent.type === "MethodDefinition" ||
110110
(node.parent.type === "Property" && node.parent.method)
111111
) {
112112

113113
// Method name.
114-
loc = node.parent.key.loc.start;
114+
loc = node.parent.key.loc;
115115
} else {
116116

117117
// Function name or `function` keyword.
118-
loc = (node.id || node).loc.start;
118+
loc = (node.id || context.getSourceCode().getFirstToken(node)).loc;
119119
}
120120

121121
if (!name) {

tests/lib/rules/consistent-return.js

Lines changed: 91 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,11 @@ ruleTester.run("consistent-return", rule, {
5252
{
5353
messageId: "missingReturnValue",
5454
data: { name: "Function 'foo'" },
55-
type: "ReturnStatement"
55+
type: "ReturnStatement",
56+
line: 1,
57+
column: 46,
58+
endLine: 1,
59+
endColumn: 53
5660
}
5761
]
5862
},
@@ -63,7 +67,11 @@ ruleTester.run("consistent-return", rule, {
6367
{
6468
messageId: "missingReturnValue",
6569
data: { name: "Arrow function" },
66-
type: "ReturnStatement"
70+
type: "ReturnStatement",
71+
line: 1,
72+
column: 47,
73+
endLine: 1,
74+
endColumn: 54
6775
}
6876
]
6977
},
@@ -73,7 +81,11 @@ ruleTester.run("consistent-return", rule, {
7381
{
7482
messageId: "unexpectedReturnValue",
7583
data: { name: "Function 'foo'" },
76-
type: "ReturnStatement"
84+
type: "ReturnStatement",
85+
line: 1,
86+
column: 41,
87+
endLine: 1,
88+
endColumn: 54
7789
}
7890
]
7991
},
@@ -83,7 +95,11 @@ ruleTester.run("consistent-return", rule, {
8395
{
8496
messageId: "missingReturnValue",
8597
data: { name: "Function" },
86-
type: "ReturnStatement"
98+
type: "ReturnStatement",
99+
line: 1,
100+
column: 44,
101+
endLine: 1,
102+
endColumn: 51
87103
}
88104
]
89105
},
@@ -93,7 +109,11 @@ ruleTester.run("consistent-return", rule, {
93109
{
94110
messageId: "unexpectedReturnValue",
95111
data: { name: "Function" },
96-
type: "ReturnStatement"
112+
type: "ReturnStatement",
113+
line: 1,
114+
column: 39,
115+
endLine: 1,
116+
endColumn: 52
97117
}
98118
]
99119
},
@@ -104,7 +124,11 @@ ruleTester.run("consistent-return", rule, {
104124
{
105125
messageId: "unexpectedReturnValue",
106126
data: { name: "Arrow function" },
107-
type: "ReturnStatement"
127+
type: "ReturnStatement",
128+
line: 1,
129+
column: 33,
130+
endLine: 1,
131+
endColumn: 46
108132
}
109133
]
110134
},
@@ -116,7 +140,10 @@ ruleTester.run("consistent-return", rule, {
116140
messageId: "missingReturnValue",
117141
data: { name: "Function 'foo'" },
118142
type: "ReturnStatement",
119-
column: 41
143+
line: 1,
144+
column: 41,
145+
endLine: 1,
146+
endColumn: 58
120147
}
121148
]
122149
},
@@ -128,7 +155,10 @@ ruleTester.run("consistent-return", rule, {
128155
messageId: "missingReturnValue",
129156
data: { name: "Function 'foo'" },
130157
type: "ReturnStatement",
131-
column: 41
158+
line: 1,
159+
column: 41,
160+
endLine: 1,
161+
endColumn: 55
132162
}
133163
]
134164
},
@@ -140,7 +170,10 @@ ruleTester.run("consistent-return", rule, {
140170
messageId: "unexpectedReturnValue",
141171
data: { name: "Function 'foo'" },
142172
type: "ReturnStatement",
143-
column: 46
173+
line: 1,
174+
column: 46,
175+
endLine: 1,
176+
endColumn: 58
144177
}
145178
]
146179
},
@@ -152,7 +185,10 @@ ruleTester.run("consistent-return", rule, {
152185
messageId: "unexpectedReturnValue",
153186
data: { name: "Function 'foo'" },
154187
type: "ReturnStatement",
155-
column: 43
188+
line: 1,
189+
column: 43,
190+
endLine: 1,
191+
endColumn: 55
156192
}
157193
]
158194
},
@@ -163,7 +199,11 @@ ruleTester.run("consistent-return", rule, {
163199
{
164200
messageId: "missingReturnValue",
165201
data: { name: "Program" },
166-
type: "ReturnStatement"
202+
type: "ReturnStatement",
203+
line: 1,
204+
column: 25,
205+
endLine: 1,
206+
endColumn: 32
167207
}
168208
]
169209
},
@@ -174,7 +214,10 @@ ruleTester.run("consistent-return", rule, {
174214
messageId: "missingReturn",
175215
data: { name: "function 'foo'" },
176216
type: "FunctionDeclaration",
177-
column: 10
217+
line: 1,
218+
column: 10,
219+
endLine: 1,
220+
endColumn: 13
178221
}
179222
]
180223
},
@@ -185,7 +228,10 @@ ruleTester.run("consistent-return", rule, {
185228
messageId: "missingReturn",
186229
data: { name: "function '_foo'" },
187230
type: "FunctionDeclaration",
188-
column: 10
231+
line: 1,
232+
column: 10,
233+
endLine: 1,
234+
endColumn: 14
189235
}
190236
]
191237
},
@@ -196,7 +242,10 @@ ruleTester.run("consistent-return", rule, {
196242
messageId: "missingReturn",
197243
data: { name: "function 'foo'" },
198244
type: "FunctionExpression",
199-
column: 12
245+
line: 1,
246+
column: 12,
247+
endLine: 1,
248+
endColumn: 15
200249
}
201250
]
202251
},
@@ -207,7 +256,10 @@ ruleTester.run("consistent-return", rule, {
207256
messageId: "missingReturn",
208257
data: { name: "function" },
209258
type: "FunctionExpression",
210-
column: 3
259+
line: 1,
260+
column: 3,
261+
endLine: 1,
262+
endColumn: 11
211263
}
212264
]
213265
},
@@ -219,7 +271,10 @@ ruleTester.run("consistent-return", rule, {
219271
messageId: "missingReturn",
220272
data: { name: "arrow function" },
221273
type: "ArrowFunctionExpression",
222-
column: 6
274+
line: 1,
275+
column: 6,
276+
endLine: 1,
277+
endColumn: 8
223278
}
224279
]
225280
},
@@ -231,7 +286,10 @@ ruleTester.run("consistent-return", rule, {
231286
messageId: "missingReturn",
232287
data: { name: "method 'foo'" },
233288
type: "FunctionExpression",
234-
column: 12
289+
line: 1,
290+
column: 12,
291+
endLine: 1,
292+
endColumn: 15
235293
}
236294
]
237295
},
@@ -243,7 +301,10 @@ ruleTester.run("consistent-return", rule, {
243301
messageId: "missingReturn",
244302
data: { name: "method 'foo'" },
245303
type: "FunctionExpression",
246-
column: 10
304+
line: 1,
305+
column: 10,
306+
endLine: 1,
307+
endColumn: 13
247308
}
248309
]
249310
},
@@ -255,7 +316,10 @@ ruleTester.run("consistent-return", rule, {
255316
messageId: "missingReturn",
256317
data: { name: "program" },
257318
type: "Program",
258-
column: 1
319+
line: 1,
320+
column: 1,
321+
endLine: void 0,
322+
endColumn: void 0
259323
}
260324
]
261325
},
@@ -267,7 +331,10 @@ ruleTester.run("consistent-return", rule, {
267331
messageId: "missingReturn",
268332
data: { name: "method 'CapitalizedFunction'" },
269333
type: "FunctionExpression",
270-
column: 11
334+
line: 1,
335+
column: 11,
336+
endLine: 1,
337+
endColumn: 30
271338
}
272339
]
273340
},
@@ -279,7 +346,10 @@ ruleTester.run("consistent-return", rule, {
279346
messageId: "missingReturn",
280347
data: { name: "method 'constructor'" },
281348
type: "FunctionExpression",
282-
column: 4
349+
line: 1,
350+
column: 4,
351+
endLine: 1,
352+
endColumn: 15
283353
}
284354
]
285355
}

0 commit comments

Comments
 (0)