================
Comment at: lib/Parse/ParseTemplate.cpp:674
@@ +673,3 @@
+ Declarator *D) {
+ if (EllipsisLoc.isValid()) {
+ FixItHint Insertion;
----------------
Please move this check to the callers in `ParseDecl.cpp`, and change this to an
assert.
================
Comment at: lib/Parse/ParseTemplate.cpp:676-679
@@ +675,6 @@
+ FixItHint Insertion;
+ if (D && D->getEllipsisLoc().isInvalid()) {
+ Insertion = FixItHint::CreateInsertion(CorrectLoc, "...");
+ D->setEllipsisLoc(EllipsisLoc);
+ }
+ else if (!D && CorrectLoc.isValid())
----------------
I don't really like the interface of this function:
* It's very `Declarator`-specific, and yet is called in non-`Declarator` cases
* It gives the wrong fixit in the template-type-parameter and
template-template-parameter cases because it can't tell whether there was
already an ellipsis.
Maybe split it into:
DiagnoseMisplacedEllipsis(SourceLocation NewLoc, SourceLocation CorrectLoc,
bool AlreadyHasEllipsis);
DiagnoseMisplacedEllipsisInDeclarator(SourceLocation NewLoc, SourceLocation
CorrectLoc, Declarator *D);
... with the second function calling the first?
================
Comment at: test/FixIt/fixit-cxx0x.cpp:142
@@ +141,3 @@
+
+namespace MissplacedParameterPack {
+ template <typename Args...> // expected-error {{'...' must immediately
precede declared identifier}}
----------------
Typo `Missplaced`
http://reviews.llvm.org/D3604
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits