sammccall added a comment.

I'll bite, why do you say it's hacky?
Looks OK to me, by clang standards :-)



================
Comment at: clang/include/clang/Sema/DeclSpec.h:516
+  }
+  Decl *getRepAsOriginDecl() const {
+    assert(isDeclRep((TST)TypeSpecType) && "DeclSpec does not store a decl");
----------------
elsewhere we call this the **found** decl, seems worth sticking with the 
terminology unless there's a distinction I'm missing.

(I'd also add a comment here, even though it doesn't seem to be local style, 
sigh)


================
Comment at: clang/include/clang/Sema/Sema.h:3307
 
   Decl *ActOnTag(Scope *S, unsigned TagSpec, TagUseKind TUK,
                  SourceLocation KWLoc, CXXScopeSpec &SS, IdentifierInfo *Name,
----------------
hokein wrote:
> This is the key place where it returns the underlying decl.
> 
> Alternatively, we could return the UsingDecl as the result (there are only 4 
> places using it, might be possible to check/verify/adjust all caller place, I 
> feel a bit scary about it, as the name indicates, caller might assume the 
> return Decl is a `TagDecl`, e.g. the 
> [case](https://github.com/llvm/llvm-project/blob/main/clang/lib/Sema/SemaTemplate.cpp#L10195))
Yeah, given the name I think returning the TagDecl makes sense.
(It looks like it should always return TagDecl, though it's hard to tell - if 
so then changing the static type to TagDecl* seems like it would help)

I think the extra out-param is fine, except given that there are few callsites, 
I'd prefer a mandatory `FoundUsingShadow*&` and explicitly ignoring it where 
appropriate - seems less cryptic and makes discarding sugar more obvious.


================
Comment at: clang/include/clang/Sema/Sema.h:3316
+                 SkipBodyInfo *SkipBody = nullptr,
+                 UsingShadowDecl** FoundUsingShadow = nullptr);
 
----------------
nit: needs clang-format for pointer-alignment here and elsewhere


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D141280

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

Reply via email to