Just so I understand, you're recommending we move functions like Document::guardDeref()
http://trac.webkit.org/browser/trunk/Source/WebCore/dom/Document.h#L240 out of the class declaration, but leave them in the header file (e.g., in Document.h). Thanks! Adam On Mon, Nov 5, 2012 at 8:47 AM, Geoffrey Garen <gga...@apple.com> wrote: > Based on the feedback here, I would propose something like the following: > > (1) Globally rename "*InlineMethods.h" => "*Inlines.h". > > "*Inlines.h" is now the WebKit convention for how you put an inline function > in a separate file. > > Update the style guide to say so. > > (2) Adopt the convention that any class using "*Inlines.h" defines all inline > functions defined out-of-line in "*Inlines.h" > > Choosing what to put in FooInlines.h based on header dependencies hurts my > brain. I don't want to compute the set of all header dependencies when trying > to find a function definition. Also, I don't want to move things around when > dependencies change. > > (3) Refactor to use "*Inlines.h" in the few cases in JSC where functions are > in obviously unholy places. > > (4) Refactor to use "*Inlines.h" in the few cases where it would > substantially improve compile times. (Do we know of such cases?) > > (5) Adopt the convention that any function that is not as trivial as "int x() > { return m_x; }" moves out of the class declaration. > > This makes finding functions easier in the world of "*Inlines.h". Also, this > puts class interface and data first, making things more readable. > > Update the style guide to say that "int x() { return m_x; }" should be one > line. > > Update the style guide to say that more complex functions should not reside > in the class declaration. > > How does that sound? > > Geoff > > > On Nov 3, 2012, at 4:04 PM, Darin Adler <da...@apple.com> wrote: > >> On Nov 3, 2012, at 10:09 AM, Mark Lam <mark....@apple.com> wrote: >> >>> 1. to keep class definitions more compact >>> - so you can see more of the entire class (not that this is always >>> possible anyway). >>> - being able to see the entire class (when possible) can yield useful >>> information about the shape of the class i.e. let's me see the architecture >>> / design, not just the implementation. >>> - having lots of inline functions bodies inside the class definition >>> bloats the class significantly and makes it harder to see the shape. >>> (again, a mental clutter issue). Of course, if you have editor tools that >>> can hide the function bodies, this is not an issue. >> >> Inline functions that are kept inside vs. outside class definitions is a >> separate issue from the in the same header file vs. in another header file. >> >> I agree that class definitions are often significantly easier to read if all >> non-trivial function definitions are put outside the class. But requiring >> that all such function definitions be put into a separate file seems unduly >> awkward and heavy to me. >> >> Maciej stated the reasons we have created such files in the past; the intent >> was not to put all inline functions in them. I would not want to create the >> many new files this new convention would require. >> >>> By 1 liners, I mean something like: >>> >>> bool isFinished { return m_isFinished; } >>> >>> … but now am realizing that this is not allowed by the webkit coding style, >>> which instead requires: >>> >>> bool isFinished >>> { >>> return m_isFinished; >>> } >> >> The WebKit coding style document might formally require that as currently >> written, but I think it’s a mistake and not consistent with the style we >> actually use in WebKit coding. >> >>> I would propose updating the webkit coding style to allowing braces on the >>> same line for the case of 1 line inline functions >> >> We should. It’s already part of WebKit coding style, even though it seems >> not yet part of the formal WebKit coding style document. >> >> -- Darin >> _______________________________________________ >> webkit-dev mailing list >> webkit-dev@lists.webkit.org >> http://lists.webkit.org/mailman/listinfo/webkit-dev > > _______________________________________________ > webkit-dev mailing list > webkit-dev@lists.webkit.org > http://lists.webkit.org/mailman/listinfo/webkit-dev _______________________________________________ webkit-dev mailing list webkit-dev@lists.webkit.org http://lists.webkit.org/mailman/listinfo/webkit-dev