Mordante added a comment.

A few questions. I'm not familiar enough with the code to accept the patch.



================
Comment at: clang/include/clang/Basic/AttrDocs.td:5266
+  let Content = [{
+The using_if_exists attribute applies to a using-declaration. It allows
+programmers to import a declaration that potentially does not exist, instead
----------------
`using_if_exists ` please add two backticks before and after the attribute name 
so it renders nicer.





================
Comment at: clang/include/clang/Basic/AttrDocs.td:5273
+  namespace empty_namespace {};
+  using empty_namespace::does_not_exist __attribute__((using_if_exists)); // 
no error!
+
----------------
Can you add an example using `[[clang::using_if_exists]]` or use that instead 
of this attribute?


================
Comment at: clang/include/clang/Basic/AttrDocs.td:5273
+  namespace empty_namespace {};
+  using empty_namespace::does_not_exist __attribute__((using_if_exists)); // 
no error!
+
----------------
Mordante wrote:
> Can you add an example using `[[clang::using_if_exists]]` or use that instead 
> of this attribute?
Why is the attribute placed here? I would expect the attribute before the 
declaration `[[clang::using_if_exists]] using empty_namespace::does_not_exist;`


================
Comment at: clang/lib/Sema/SemaDecl.cpp:500
+    // Recover with 'int'
+    T = Context.IntTy;
   } else if (AllowDeducedTemplate) {
----------------
Why do you want recover instead of returning a `nullptr`?


================
Comment at: clang/test/SemaCXX/using-if-exists-attr.cpp:1
+// RUN: %clang_cc1 -std=c++2a -fsyntax-only %s -verify
+
----------------
Does the test require C++20? If so can you use `-std=c++20` since Clang 
supports it, same for the other test.


================
Comment at: clang/test/SemaCXX/using-if-exists-attr.cpp:9
+
+// FIXME: Should we support the C++ spelling here?
+using NS::x [[clang::using_if_exists]]; // expected-error {{an attribute list 
cannot appear here}}
----------------
I would prefer to allow the C++ spelling, the square brackets are also 
supported in C when using `-fdouble-square-bracket-attributes`. (Not too useful 
in this case since C doesn't support namespaces.) But as mentioned before I 
prefer the attribute before the `using ` declaration.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D90188/new/

https://reviews.llvm.org/D90188

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

Reply via email to