sammccall marked 3 inline comments as done.
sammccall added a comment.

Thanks!



================
Comment at: clangd/Context.h:77
+  /// See WithContext and WithContextValue for how to do this safely.
+  static Context &current();
 
----------------
ilya-biryukov wrote:
> Maybe we could return `const Context&` here and have a separate 
> `setCurrent()` method for replacing the current context?
> Most of the clients shouldn't mutate the contexts anyway, and finding the few 
> that do seems easier if there's a separate method for that.
Done (named `swap`).

In fact the only caller is `WithContext`, which is a good sign.

It would be possible to make `swap()` private, since WithContext is in this 
file. I tend to lean against it because embedders will do explicit context 
manipulation and WithContext may not be the right primitive for them. So I've 
left the WithContext guidance as "just a comment". Could be convinced though.



================
Comment at: clangd/Context.h:201
+  WithContext &operator=(const WithContext &) = delete;
+  WithContext(WithContext &&) = default; // Allow return-by-value.
+  WithContext &operator=(WithContext &&) = delete;
----------------
ilya-biryukov wrote:
> Where do we use it? Can't we make move ctor deleted too?
Good catch! This was used in an old version of the patch.


================
Comment at: clangd/Trace.cpp:131
+    return Context::current().clone();
+  WithContextValue WithArgs{std::unique_ptr<json::obj>(Args)};
+  return T->beginSpan(Name, Args);
----------------
ilya-biryukov wrote:
> Maybe use parentheses instead of braces for initialization?
Braces here are to avoid most-vexing-parse: with parens this is a function 
declaration.

(I'm not sure this is worth a comment, as the compiler flags it if you change 
it)


Repository:
  rCTE Clang Tools Extra

https://reviews.llvm.org/D42517



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to