@@ -210,17 +210,19 @@ var NoConfusingVoidExpressionRule = rule.Rule{
210210 return
211211 }
212212
213- var fixes []rule.RuleFix
214- body := invalidAncestor .Body ()
215- if ! ast .IsBlock (body ) && canFix (body ) {
216- withoutParens := ast .SkipParentheses (body )
217- fixes = []rule.RuleFix {
218- rule .RuleFixReplaceRange (body .Loc .WithEnd (withoutParens .Pos ()), "{ " ),
219- rule .RuleFixReplaceRange (body .Loc .WithPos (withoutParens .End ()), "; }" ),
213+ ctx .ReportNodeWithFixes (node , buildInvalidVoidExprArrowMessage (), func () []rule.RuleFix {
214+ var fixes []rule.RuleFix
215+ body := invalidAncestor .Body ()
216+ if ! ast .IsBlock (body ) && canFix (body ) {
217+ withoutParens := ast .SkipParentheses (body )
218+ fixes = []rule.RuleFix {
219+ rule .RuleFixReplaceRange (body .Loc .WithEnd (withoutParens .Pos ()), "{ " ),
220+ rule .RuleFixReplaceRange (body .Loc .WithPos (withoutParens .End ()), "; }" ),
221+ }
220222 }
221- }
222223
223- ctx .ReportNodeWithFixes (node , buildInvalidVoidExprArrowMessage (), func () []rule.RuleFix { return fixes })
224+ return fixes
225+ })
224226 return
225227 }
226228
@@ -239,40 +241,44 @@ var NoConfusingVoidExpressionRule = rule.Rule{
239241 }
240242
241243 if isFinalReturn (invalidAncestor ) {
242- expr := invalidAncestor .AsReturnStatement ().Expression
243- var fixes []rule.RuleFix
244- if canFix (expr ) {
245- replaceText := ""
246- nextToken := scanner .ScanTokenAtPosition (ctx .SourceFile , expr .Pos ())
247- if nextToken == ast .KindOpenParenToken || nextToken == ast .KindOpenBracketToken || nextToken == ast .KindBacktickToken {
248- replaceText = ";"
244+ ctx .ReportNodeWithFixes (node , buildInvalidVoidExprReturnLastMessage (), func () []rule.RuleFix {
245+ expr := invalidAncestor .AsReturnStatement ().Expression
246+ var fixes []rule.RuleFix
247+ if canFix (expr ) {
248+ replaceText := ""
249+ nextToken := scanner .ScanTokenAtPosition (ctx .SourceFile , expr .Pos ())
250+ if nextToken == ast .KindOpenParenToken || nextToken == ast .KindOpenBracketToken || nextToken == ast .KindBacktickToken {
251+ replaceText = ";"
252+ }
253+ returnToken := scanner .GetRangeOfTokenAtPosition (ctx .SourceFile , invalidAncestor .Pos ())
254+ fixes = append (fixes , rule .RuleFixReplaceRange (returnToken , replaceText ))
249255 }
250- returnToken := scanner .GetRangeOfTokenAtPosition (ctx .SourceFile , invalidAncestor .Pos ())
251- fixes = append (fixes , rule .RuleFixReplaceRange (returnToken , replaceText ))
252- }
253256
254- ctx .ReportNodeWithFixes (node , buildInvalidVoidExprReturnLastMessage (), func () []rule.RuleFix { return fixes })
257+ return fixes
258+ })
255259 return
256260 }
257261
258- var fixes []rule.RuleFix
259- replaceText := ""
260- nextToken := scanner .ScanTokenAtPosition (ctx .SourceFile , invalidAncestor .AsReturnStatement ().Expression .Pos ())
261- if nextToken == ast .KindOpenParenToken || nextToken == ast .KindOpenBracketToken || nextToken == ast .KindBacktickToken {
262- replaceText = ";"
263- }
264- returnToken := scanner .GetRangeOfTokenAtPosition (ctx .SourceFile , invalidAncestor .Pos ())
265- fixes = append (fixes , rule .RuleFixReplaceRange (returnToken , replaceText ), rule .RuleFixInsertAfter (invalidAncestor , "; return;" ))
266-
267- if ! ast .IsBlock (invalidAncestor .Parent ) {
268- // e.g. `if (cond) return console.error();`
269- // add braces if not inside a block
270- fixes = append (fixes ,
271- rule .RuleFixInsertBefore (ctx .SourceFile , invalidAncestor , "{ " ),
272- rule .RuleFixInsertAfter (invalidAncestor , " }" ),
273- )
274- }
275- ctx .ReportNodeWithFixes (node , buildInvalidVoidExprReturnMessage (), func () []rule.RuleFix { return fixes })
262+ ctx .ReportNodeWithFixes (node , buildInvalidVoidExprReturnMessage (), func () []rule.RuleFix {
263+ var fixes []rule.RuleFix
264+ replaceText := ""
265+ nextToken := scanner .ScanTokenAtPosition (ctx .SourceFile , invalidAncestor .AsReturnStatement ().Expression .Pos ())
266+ if nextToken == ast .KindOpenParenToken || nextToken == ast .KindOpenBracketToken || nextToken == ast .KindBacktickToken {
267+ replaceText = ";"
268+ }
269+ returnToken := scanner .GetRangeOfTokenAtPosition (ctx .SourceFile , invalidAncestor .Pos ())
270+ fixes = append (fixes , rule .RuleFixReplaceRange (returnToken , replaceText ), rule .RuleFixInsertAfter (invalidAncestor , "; return;" ))
271+
272+ if ! ast .IsBlock (invalidAncestor .Parent ) {
273+ // e.g. `if (cond) return console.error();`
274+ // add braces if not inside a block
275+ fixes = append (fixes ,
276+ rule .RuleFixInsertBefore (ctx .SourceFile , invalidAncestor , "{ " ),
277+ rule .RuleFixInsertAfter (invalidAncestor , " }" ),
278+ )
279+ }
280+ return fixes
281+ })
276282 return
277283 }
278284
0 commit comments