wsl icon indicating copy to clipboard operation
wsl copied to clipboard

Read closing bracket(s) as empty lines

Open jtagcat opened this issue 2 years ago • 2 comments

I see this as just fine:

	// ...
	}
}
return
	// ...

	if err != nil
		return nil, err
	}
	return // "bad"
}

return statements should not be cuddled if block has more than two lines

jtagcat avatar Mar 01 '22 22:03 jtagcat

I don't think I agree here, it still doesn't separate control flow which is the intent here. Also in general cuddling anything with another block (a closing }) feels like something against the wsl philosophy.

But either way, as noted in #110 I'm more likely to drop this rule completely since it overlaps with nlreturn. I won't close this because I haven't decided yet.

bombsimon avatar Mar 02 '22 07:03 bombsimon

For the first example, I think I could agree with you, but for the second, the control flow, is like this:

	if err != nil
		return nil, err
	} else { // this
		return
	} // this

^ I would say the second return is part of the same flow.

jtagcat avatar Mar 02 '22 16:03 jtagcat

Both of these are valid:

if err != nil {
    return 0, err
} else {
    return 1, nil
}
if err != nil {
    return 0, err
}

return 1, nil

Just because something fits in an else block does not mean I want to reduce separation of control flow. The point of this rule is similar to the philosophy of nlreturn and for any non single line function wsl will require an empty line.

The ticket mentions to read any bracket as an empty line even though the example is for error checking. I think that's also against the idea with wsl since that would allow something like this which is one of the most important rules in my opinion:

if expr {
     //
}
if expr {
    //
}

I will close this as wontfix but feel free to add more context or thoughts if you think this would fit wsl or if I misinterpreted your thoughts here.

bombsimon avatar Mar 15 '23 21:03 bombsimon

I disagree with my OP, you are right. Thanks

jtagcat avatar Mar 18 '23 13:03 jtagcat