Home | History | Annotate | Download | only in Sema

Lines Matching defs:Unexpanded

25 // Visitor that collects unexpanded parameter packs
29 /// \brief A class that collects unexpanded parameter packs.
36 SmallVectorImpl<UnexpandedParameterPack> &Unexpanded;
42 SmallVectorImpl<UnexpandedParameterPack> &Unexpanded)
43 : Unexpanded(Unexpanded), InLambda(false) { }
48 // Recording occurrences of (unexpanded) parameter packs.
54 Unexpanded.push_back(std::make_pair(TL.getTypePtr(), TL.getNameLoc()));
65 Unexpanded.push_back(std::make_pair(T, SourceLocation()));
74 Unexpanded.push_back(std::make_pair(E->getDecl(), E->getLocation()));
85 Unexpanded.push_back(std::make_pair(TTP, SourceLocation()));
107 // Pruning the search for unexpanded parameter packs.
111 /// do not contain unexpanded parameter packs.
121 /// unexpanded parameter packs.
130 /// that do not contain unexpanded parameter packs.
141 /// they cannot contain unexpanded parameter packs.
165 /// \brief Note whether we're traversing a lambda containing an unexpanded
166 /// parameter pack. In this case, the unexpanded pack can occur anywhere,
168 /// lambda, we don't propagate the 'contains unexpanded parameter pack' bit
185 Unexpanded.push_back(std::make_pair(VD, I->getLocation()));
195 /// \brief Diagnose all of the unexpanded parameter packs in the given
200 ArrayRef<UnexpandedParameterPack> Unexpanded) {
201 if (Unexpanded.empty())
204 // If we are within a lambda expression, that lambda contains an unexpanded
206 // FIXME: Store 'Unexpanded' on the lambda so we don't need to recompute it
220 for (unsigned I = 0, N = Unexpanded.size(); I != N; ++I) {
223 = Unexpanded[I].first.dyn_cast<const TemplateTypeParmType *>())
226 Name = Unexpanded[I].first.get<NamedDecl *>()->getIdentifier();
231 if (Unexpanded[I].second.isValid())
232 Locations.push_back(Unexpanded[I].second);
259 SmallVector<UnexpandedParameterPack, 2> Unexpanded;
260 CollectUnexpandedParameterPacksVisitor(Unexpanded).TraverseTypeLoc(
262 assert(!Unexpanded.empty() && "Unable to find unexpanded parameter packs");
263 return DiagnoseUnexpandedParameterPacks(Loc, UPPC, Unexpanded);
274 SmallVector<UnexpandedParameterPack, 2> Unexpanded;
275 CollectUnexpandedParameterPacksVisitor(Unexpanded).TraverseStmt(E);
276 assert(!Unexpanded.empty() && "Unable to find unexpanded parameter packs");
277 return DiagnoseUnexpandedParameterPacks(E->getLocStart(), UPPC, Unexpanded);
289 SmallVector<UnexpandedParameterPack, 2> Unexpanded;
290 CollectUnexpandedParameterPacksVisitor(Unexpanded)
292 assert(!Unexpanded.empty() && "Unable to find unexpanded parameter packs");
294 UPPC, Unexpanded);
325 SmallVector<UnexpandedParameterPack, 2> Unexpanded;
326 CollectUnexpandedParameterPacksVisitor(Unexpanded)
328 assert(!Unexpanded.empty() && "Unable to find unexpanded parameter packs");
329 return DiagnoseUnexpandedParameterPacks(NameInfo.getLoc(), UPPC, Unexpanded);
339 SmallVector<UnexpandedParameterPack, 2> Unexpanded;
340 CollectUnexpandedParameterPacksVisitor(Unexpanded)
342 assert(!Unexpanded.empty() && "Unable to find unexpanded parameter packs");
343 return DiagnoseUnexpandedParameterPacks(Loc, UPPC, Unexpanded);
352 SmallVector<UnexpandedParameterPack, 2> Unexpanded;
353 CollectUnexpandedParameterPacksVisitor(Unexpanded)
355 assert(!Unexpanded.empty() && "Unable to find unexpanded parameter packs");
356 return DiagnoseUnexpandedParameterPacks(Arg.getLocation(), UPPC, Unexpanded);
360 SmallVectorImpl<UnexpandedParameterPack> &Unexpanded) {
361 CollectUnexpandedParameterPacksVisitor(Unexpanded)
366 SmallVectorImpl<UnexpandedParameterPack> &Unexpanded) {
367 CollectUnexpandedParameterPacksVisitor(Unexpanded)
372 SmallVectorImpl<UnexpandedParameterPack> &Unexpanded) {
373 CollectUnexpandedParameterPacksVisitor(Unexpanded).TraverseType(T);
377 SmallVectorImpl<UnexpandedParameterPack> &Unexpanded) {
378 CollectUnexpandedParameterPacksVisitor(Unexpanded).TraverseTypeLoc(TL);
382 SmallVectorImpl<UnexpandedParameterPack> &Unexpanded) {
388 CollectUnexpandedParameterPacksVisitor(Unexpanded)
393 SmallVectorImpl<UnexpandedParameterPack> &Unexpanded) {
394 CollectUnexpandedParameterPacksVisitor(Unexpanded)
530 ArrayRef<UnexpandedParameterPack> Unexpanded,
538 for (ArrayRef<UnexpandedParameterPack>::iterator i = Unexpanded.begin(),
539 end = Unexpanded.end();
639 SmallVector<UnexpandedParameterPack, 2> Unexpanded;
640 CollectUnexpandedParameterPacksVisitor(Unexpanded).TraverseType(Pattern);
643 for (unsigned I = 0, N = Unexpanded.size(); I != N; ++I) {
649 = Unexpanded[I].first.dyn_cast<const TemplateTypeParmType *>()) {
653 NamedDecl *ND = Unexpanded[I].first.get<NamedDecl *>();
660 Unexpanded[I].first.get<NamedDecl *>());
662 // The pattern refers to an unexpanded pack. We're not ready to expand