[PATCH] D57540: [C++17] Don't crash while diagnosing different access specifier of a deduction guide.
Nicolas Lesser via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Sat Feb 2 04:55:40 PST 2019
Rakete1111 marked an inline comment as done.
Rakete1111 added inline comments.
================
Comment at: test/SemaCXX/cxx1z-class-template-argument-deduction.cpp:360-361
+ struct Type {
+ Typo(); // expected-error{{deduction guide must be declared in the same scope}}
+ // expected-error at -1{{deduction guide declaration without trailing return type}}
+ };
----------------
aaron.ballman wrote:
> These errors are pretty unfortunate -- they don't really help the user to understand what's gone wrong here. They're an improvement over the crash, but I think we should try to make the errors more useful if we can.
>
> Why is `Typo()` being treated as a deduction guide? Perhaps we could look to see if there is a `->` before making that determination?
> Perhaps we could look to see if there is a -> before making that determination?
Yes that would be possible. The diagnostic would change for the following code:
```
template <typename>
struct Foo {};
Foo();// -> Foo<int>;
// currently: deduction guide missing ->
// after: C++ requires type specifier for every declaration
```
Is that acceptable? Or I guess I could restrict this to partial deduction guides in classes.
Repository:
rC Clang
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D57540/new/
https://reviews.llvm.org/D57540
More information about the cfe-commits
mailing list