So for converting from C-style to C++-style, that would be:
/* static */ void Foo::Bar() {
...
}
// static
void Foo::Bar() {
...
}
I think that would be good. My one concern would be the presence of other C++-style
comments before the method definition. For example [1].
Ideally documentation like that should go in the header by the method declaration, but I
have no idea if we consistently do that.
[1] https://hg.mozilla.org/mozilla-central/file/e4b9b1084292/layout/generic/nsFrame.cpp#l1023
Thanks,
Ryan
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
(https://bugzilla.mozilla.org/show_bug.cgi?id=1523969)
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Monday, January 28, 2019 6:27 PM, Ryan Hunt <rh...@eqrion.net> wrote:
> Yeah, personally I have found them be useful and don't have an issue with keeping
> them. I just wasn't sure if that was a common experience.
>
> So for converting from C-style to C++-style, that would be:
>
> /* static */ void Foo::Bar() {
> ...
> }
>
> // static
> void Foo::Bar() {
> ...
> }
>
> I think that would be good. My one concern would be the presence of other C++-style
> comments before the method definition. For example [1].
>
> Ideally documentation like that should go in the header by the method declaration, but I
> have no idea if we consistently do that.
>
> [1] https://hg.mozilla.org/mozilla-central/file/e4b9b1084292/layout/generic/nsFrame.cpp#l1023
>
> Thanks,
> Ryan
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Monday, January 28, 2019 12:51 PM, Ehsan Akhgari <ehsan....@gmail.com> wrote:
>
>> This is indeed one of the cases where the reformat has made things worse. I think as a couple of people have already said, we'll find that some people do find these annotations useful, even if they're not always consistently present.
>>
>> The path to least resistance for addressing this problem may be to convert these into C++-style comments and therefore moving them into their own lines. Would you be OK with that?
>>
>> Thanks,
>> Ehsan
>>
>> On Fri, Jan 25, 2019 at 11:49 PM Ryan Hunt <rh...@eqrion.net> wrote:
>>
>>> Hi all,
>>>
>>> Quick C++ style question.
>>>
>>> A common pattern in Gecko is for method definitions to have a comment with the
>>> 'static' or 'virtual' qualification.
>>>
>>> Before the reformat, the comment would be on it's own separate line [1]. Now
>>> it's on the main line of the definition [2].
>>>
>>> For example:
>>>
>>> /* static */ void
>>> Foo::Bar() {
>>> ...
>>> }
>>>
>>> vs.
>>>
>>> /* static */ void Foo::Bar() {
>>> ...
>>> }
>>>
>>> Personally I think this now takes too much horizontal space from the main
>>> definition, and would prefer it to be either on its own line or just removed.
>>>
>>> Does anyone have an opinion on whether we still want these comments? And if so
>>> whether it makes sense to move them back to their own line.
>>>
>>> (My ulterior motive is that sublime text's indexer started failing to find
>>> these definitions after the reformat, but that should be fixed regardless)
>>>
>>> If you're interested in what removing these would entail, I wrote a regex to
>>> make the change [3].
>>>
>>> Thanks,
>>> Ryan
>>>
>>> [1] https://hg.mozilla.org/mozilla-central/file/0348d472115d/layout/generic/nsFrame.cpp#l1759
>>> [2] https://hg.mozilla.org/mozilla-central/file/e4b9b1084292/layout/generic/nsFrame.cpp#l1756
>>> [3] https://hg.mozilla.org/try/rev/31ab3e466b6f15dcdbb1aee47edabc7c358b86f2
>>>
It looks like clang-format is actually okay with C-style comments being on
their own line before a method definition. So last night patches landed to move
all these comments to their own line.
From:
/* static */ void Foo::Bar() { ... }
To:
/* static */
void Foo::Bar() { ... }
So why did the initial reformatting move all these comments around?
I believe the issue is that before the reformat, the C-style comments were on
the same line as the return types of the methods [1]. I think this lead
clang-format to view the comments as being part of the method definitions, and
so they were all formatted to be on the same line.
Thanks,
Ryan
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐