reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/include/clang/Parse/Parser.h
 1620   ParsedType ParseObjCTypeName(ObjCDeclSpec &DS, DeclaratorContext Ctx,
 2123   DeclGroupPtrTy ParseDeclaration(DeclaratorContext Context,
 2128   ParseSimpleDeclaration(DeclaratorContext Context, SourceLocation &DeclEnd,
 2132   bool MightBeDeclarator(DeclaratorContext Context);
 2133   DeclGroupPtrTy ParseDeclGroup(ParsingDeclSpec &DS, DeclaratorContext Context,
 2157   getDeclSpecContextFromDeclaratorContext(DeclaratorContext Context);
 2173                                   DeclaratorContext Context);
 2379                            DeclaratorContext Context
 2380                              = DeclaratorContext::TypeNameContext,
 2734   DeclGroupPtrTy ParseNamespace(DeclaratorContext Context,
 2750   Decl *ParseLinkage(ParsingDeclSpec &DS, DeclaratorContext Context);
 2753       DeclaratorContext Context, const ParsedTemplateInfo &TemplateInfo,
 2755   Decl *ParseUsingDirective(DeclaratorContext Context,
 2773   bool ParseUsingDeclarator(DeclaratorContext Context, UsingDeclarator &D);
 2774   DeclGroupPtrTy ParseUsingDeclaration(DeclaratorContext Context,
 3000   Decl *ParseDeclarationStartingWithTemplate(DeclaratorContext Context,
 3004   Decl *ParseTemplateDeclarationOrSpecialization(DeclaratorContext Context,
 3009       DeclaratorContext Context, const ParsedTemplateInfo &TemplateInfo,
 3049   Decl *ParseExplicitInstantiation(DeclaratorContext Context,
tools/clang/include/clang/Parse/RAIIObjectsForParser.h
  204     ParsingDeclarator(Parser &P, const ParsingDeclSpec &DS, DeclaratorContext C)
tools/clang/include/clang/Sema/DeclSpec.h
 1784   DeclaratorContext Context;
 1851   Declarator(const DeclSpec &ds, DeclaratorContext C)
 1889   DeclaratorContext getContext() const { return Context; }
 1892     return (Context == DeclaratorContext::PrototypeContext ||
 1893             Context == DeclaratorContext::ObjCParameterContext ||
 1894             Context == DeclaratorContext::ObjCResultContext ||
 1895             Context == DeclaratorContext::LambdaExprParameterContext);
 1950     case DeclaratorContext::FileContext:
 1951     case DeclaratorContext::KNRTypeListContext:
 1952     case DeclaratorContext::MemberContext:
 1953     case DeclaratorContext::BlockContext:
 1954     case DeclaratorContext::ForContext:
 1955     case DeclaratorContext::InitStmtContext:
 1956     case DeclaratorContext::ConditionContext:
 1959     case DeclaratorContext::TypeNameContext:
 1960     case DeclaratorContext::FunctionalCastContext:
 1961     case DeclaratorContext::AliasDeclContext:
 1962     case DeclaratorContext::AliasTemplateContext:
 1963     case DeclaratorContext::PrototypeContext:
 1964     case DeclaratorContext::LambdaExprParameterContext:
 1965     case DeclaratorContext::ObjCParameterContext:
 1966     case DeclaratorContext::ObjCResultContext:
 1967     case DeclaratorContext::TemplateParamContext:
 1968     case DeclaratorContext::CXXNewContext:
 1969     case DeclaratorContext::CXXCatchContext:
 1970     case DeclaratorContext::ObjCCatchContext:
 1971     case DeclaratorContext::BlockLiteralContext:
 1972     case DeclaratorContext::LambdaExprContext:
 1973     case DeclaratorContext::ConversionIdContext:
 1974     case DeclaratorContext::TemplateArgContext:
 1975     case DeclaratorContext::TemplateTypeArgContext:
 1976     case DeclaratorContext::TrailingReturnContext:
 1977     case DeclaratorContext::TrailingReturnVarContext:
 1988     case DeclaratorContext::FileContext:
 1989     case DeclaratorContext::KNRTypeListContext:
 1990     case DeclaratorContext::MemberContext:
 1991     case DeclaratorContext::BlockContext:
 1992     case DeclaratorContext::ForContext:
 1993     case DeclaratorContext::InitStmtContext:
 1994     case DeclaratorContext::ConditionContext:
 1995     case DeclaratorContext::PrototypeContext:
 1996     case DeclaratorContext::LambdaExprParameterContext:
 1997     case DeclaratorContext::TemplateParamContext:
 1998     case DeclaratorContext::CXXCatchContext:
 1999     case DeclaratorContext::ObjCCatchContext:
 2002     case DeclaratorContext::TypeNameContext:
 2003     case DeclaratorContext::FunctionalCastContext:
 2004     case DeclaratorContext::CXXNewContext:
 2005     case DeclaratorContext::AliasDeclContext:
 2006     case DeclaratorContext::AliasTemplateContext:
 2007     case DeclaratorContext::ObjCParameterContext:
 2008     case DeclaratorContext::ObjCResultContext:
 2009     case DeclaratorContext::BlockLiteralContext:
 2010     case DeclaratorContext::LambdaExprContext:
 2011     case DeclaratorContext::ConversionIdContext:
 2012     case DeclaratorContext::TemplateArgContext:
 2013     case DeclaratorContext::TemplateTypeArgContext:
 2014     case DeclaratorContext::TrailingReturnContext:
 2015     case DeclaratorContext::TrailingReturnVarContext:
 2024     case DeclaratorContext::FileContext:
 2027     case DeclaratorContext::BlockContext:
 2028     case DeclaratorContext::ForContext:
 2029     case DeclaratorContext::InitStmtContext:
 2030     case DeclaratorContext::ConditionContext:
 2033     case DeclaratorContext::MemberContext:
 2034     case DeclaratorContext::PrototypeContext:
 2035     case DeclaratorContext::TemplateParamContext:
 2040     case DeclaratorContext::KNRTypeListContext:
 2041     case DeclaratorContext::TypeNameContext:
 2042     case DeclaratorContext::FunctionalCastContext:
 2043     case DeclaratorContext::AliasDeclContext:
 2044     case DeclaratorContext::AliasTemplateContext:
 2045     case DeclaratorContext::LambdaExprParameterContext:
 2046     case DeclaratorContext::ObjCParameterContext:
 2047     case DeclaratorContext::ObjCResultContext:
 2048     case DeclaratorContext::CXXNewContext:
 2049     case DeclaratorContext::CXXCatchContext:
 2050     case DeclaratorContext::ObjCCatchContext:
 2051     case DeclaratorContext::BlockLiteralContext:
 2052     case DeclaratorContext::LambdaExprContext:
 2053     case DeclaratorContext::ConversionIdContext:
 2054     case DeclaratorContext::TemplateArgContext:
 2055     case DeclaratorContext::TemplateTypeArgContext:
 2056     case DeclaratorContext::TrailingReturnContext:
 2057     case DeclaratorContext::TrailingReturnVarContext:
 2072         Context != DeclaratorContext::FileContext)
 2080     case DeclaratorContext::FileContext:
 2081     case DeclaratorContext::BlockContext:
 2082     case DeclaratorContext::ForContext:
 2083     case DeclaratorContext::InitStmtContext:
 2084     case DeclaratorContext::TrailingReturnVarContext:
 2087     case DeclaratorContext::ConditionContext:
 2093     case DeclaratorContext::KNRTypeListContext:
 2094     case DeclaratorContext::MemberContext:
 2095     case DeclaratorContext::PrototypeContext:
 2096     case DeclaratorContext::LambdaExprParameterContext:
 2097     case DeclaratorContext::ObjCParameterContext:
 2098     case DeclaratorContext::ObjCResultContext:
 2099     case DeclaratorContext::TemplateParamContext:
 2100     case DeclaratorContext::CXXCatchContext:
 2101     case DeclaratorContext::ObjCCatchContext:
 2102     case DeclaratorContext::TypeNameContext:
 2103     case DeclaratorContext::FunctionalCastContext: // FIXME
 2104     case DeclaratorContext::CXXNewContext:
 2105     case DeclaratorContext::AliasDeclContext:
 2106     case DeclaratorContext::AliasTemplateContext:
 2107     case DeclaratorContext::BlockLiteralContext:
 2108     case DeclaratorContext::LambdaExprContext:
 2109     case DeclaratorContext::ConversionIdContext:
 2110     case DeclaratorContext::TemplateArgContext:
 2111     case DeclaratorContext::TemplateTypeArgContext:
 2112     case DeclaratorContext::TrailingReturnContext:
 2306     case DeclaratorContext::FileContext:
 2307     case DeclaratorContext::MemberContext:
 2308     case DeclaratorContext::BlockContext:
 2309     case DeclaratorContext::ForContext:
 2310     case DeclaratorContext::InitStmtContext:
 2313     case DeclaratorContext::ConditionContext:
 2314     case DeclaratorContext::KNRTypeListContext:
 2315     case DeclaratorContext::TypeNameContext:
 2316     case DeclaratorContext::FunctionalCastContext:
 2317     case DeclaratorContext::AliasDeclContext:
 2318     case DeclaratorContext::AliasTemplateContext:
 2319     case DeclaratorContext::PrototypeContext:
 2320     case DeclaratorContext::LambdaExprParameterContext:
 2321     case DeclaratorContext::ObjCParameterContext:
 2322     case DeclaratorContext::ObjCResultContext:
 2323     case DeclaratorContext::TemplateParamContext:
 2324     case DeclaratorContext::CXXNewContext:
 2325     case DeclaratorContext::CXXCatchContext:
 2326     case DeclaratorContext::ObjCCatchContext:
 2327     case DeclaratorContext::BlockLiteralContext:
 2328     case DeclaratorContext::LambdaExprContext:
 2329     case DeclaratorContext::ConversionIdContext:
 2330     case DeclaratorContext::TemplateArgContext:
 2331     case DeclaratorContext::TemplateTypeArgContext:
 2332     case DeclaratorContext::TrailingReturnContext:
 2333     case DeclaratorContext::TrailingReturnVarContext:
 2343     case DeclaratorContext::FileContext:
 2344     case DeclaratorContext::KNRTypeListContext:
 2345     case DeclaratorContext::MemberContext:
 2348     case DeclaratorContext::TypeNameContext:
 2350     case DeclaratorContext::FunctionalCastContext:
 2351     case DeclaratorContext::AliasDeclContext:
 2352     case DeclaratorContext::AliasTemplateContext:
 2353     case DeclaratorContext::PrototypeContext:
 2354     case DeclaratorContext::LambdaExprParameterContext:
 2355     case DeclaratorContext::ObjCParameterContext:
 2356     case DeclaratorContext::ObjCResultContext:
 2357     case DeclaratorContext::TemplateParamContext:
 2358     case DeclaratorContext::CXXNewContext:
 2359     case DeclaratorContext::CXXCatchContext:
 2360     case DeclaratorContext::ObjCCatchContext:
 2361     case DeclaratorContext::BlockLiteralContext:
 2362     case DeclaratorContext::LambdaExprContext:
 2363     case DeclaratorContext::ConversionIdContext:
 2364     case DeclaratorContext::TrailingReturnContext:
 2365     case DeclaratorContext::TrailingReturnVarContext:
 2366     case DeclaratorContext::TemplateTypeArgContext:
 2369     case DeclaratorContext::BlockContext:
 2370     case DeclaratorContext::ForContext:
 2371     case DeclaratorContext::InitStmtContext:
 2372     case DeclaratorContext::ConditionContext:
 2373     case DeclaratorContext::TemplateArgContext:
 2482     return getContext() == DeclaratorContext::MemberContext &&
 2504       : D(DS, DeclaratorContext::MemberContext),
tools/clang/lib/Parse/ParseDecl.cpp
   43                                  DeclaratorContext Context,
 1745 Parser::ParseDeclaration(DeclaratorContext Context, SourceLocation &DeclEnd,
 1812     DeclaratorContext Context, SourceLocation &DeclEnd,
 1853 bool Parser::MightBeDeclarator(DeclaratorContext Context) {
 1872     return Context == DeclaratorContext::MemberContext &&
 1876     return Context == DeclaratorContext::MemberContext ||
 1903       return Context == DeclaratorContext::MemberContext ||
 1905               Context == DeclaratorContext::FileContext);
 2004                                               DeclaratorContext Context,
 2055     if (Context == DeclaratorContext::FileContext) {
 2133   bool ExpectSemi = Context != DeclaratorContext::ForContext;
 2179       ExpectAndConsumeSemi(Context == DeclaratorContext::FileContext
 2384         if (D.getContext() == DeclaratorContext::ForContext ||
 2385             D.getContext() == DeclaratorContext::InitStmtContext)
 2790 Parser::getDeclSpecContextFromDeclaratorContext(DeclaratorContext Context) {
 2791   if (Context == DeclaratorContext::MemberContext)
 2793   if (Context == DeclaratorContext::FileContext)
 2795   if (Context == DeclaratorContext::TemplateParamContext)
 2797   if (Context == DeclaratorContext::TemplateArgContext ||
 2798       Context == DeclaratorContext::TemplateTypeArgContext)
 2800   if (Context == DeclaratorContext::TrailingReturnContext ||
 2801       Context == DeclaratorContext::TrailingReturnVarContext)
 2803   if (Context == DeclaratorContext::AliasDeclContext ||
 2804       Context == DeclaratorContext::AliasTemplateContext)
 5455                                DeclaratorContext TheContext) {
 5476            (TheContext != DeclaratorContext::ConversionIdContext &&
 5477             TheContext != DeclaratorContext::CXXNewContext);
 5532         D.getContext() == DeclaratorContext::FileContext ||
 5533         D.getContext() == DeclaratorContext::MemberContext;
 5599                     ((D.getContext() != DeclaratorContext::CXXNewContext)
 5749         *this, D.getContext() == DeclaratorContext::MemberContext ||
 5750                    (D.getContext() == DeclaratorContext::ForContext &&
 5756           D.getContext() == DeclaratorContext::FileContext ||
 5757           D.getContext() == DeclaratorContext::MemberContext;
 5786         !((D.getContext() == DeclaratorContext::PrototypeContext ||
 5787            D.getContext() == DeclaratorContext::LambdaExprParameterContext ||
 5788            D.getContext() == DeclaratorContext::BlockLiteralContext) &&
 5820           (D.getContext() == DeclaratorContext::FileContext ||
 5821            D.getContext() == DeclaratorContext::MemberContext);
 5825             (D.getContext() == DeclaratorContext::MemberContext);
 5827           (D.getContext() == DeclaratorContext::FileContext ||
 5828            D.getContext() == DeclaratorContext::MemberContext);
 5883     else if (D.getContext() == DeclaratorContext::TemplateArgContext)
 5887     else if (D.getContext() == DeclaratorContext::AliasDeclContext ||
 5888              D.getContext() == DeclaratorContext::AliasTemplateContext)
 5891     else if ((D.getContext() == DeclaratorContext::TrailingReturnContext ||
 5892               D.getContext() == DeclaratorContext::TrailingReturnVarContext) &&
 5951     if (D.getContext() == DeclaratorContext::MemberContext) {
 6328         (D.getContext() == DeclaratorContext::MemberContext
 6330          : D.getContext() == DeclaratorContext::FileContext &&
 6601         DS, D.getContext() == DeclaratorContext::LambdaExprContext
 6602                 ? DeclaratorContext::LambdaExprParameterContext
 6603                 : DeclaratorContext::PrototypeContext);
 6646         if (D.getContext() == DeclaratorContext::MemberContext) {
tools/clang/lib/Parse/ParseDeclCXX.cpp
   58 Parser::DeclGroupPtrTy Parser::ParseNamespace(DeclaratorContext Context,
  333 Decl *Parser::ParseLinkage(ParsingDeclSpec &DS, DeclaratorContext Context) {
  461 Parser::ParseUsingDirectiveOrDeclaration(DeclaratorContext Context,
  516 Decl *Parser::ParseUsingDirective(DeclaratorContext Context,
  585 bool Parser::ParseUsingDeclarator(DeclaratorContext Context,
  622       Context == DeclaratorContext::MemberContext &&
  669 Parser::ParseUsingDeclaration(DeclaratorContext Context,
  833       TemplateInfo.Kind ? DeclaratorContext::AliasTemplateContext
  834                         : DeclaratorContext::AliasDeclContext,
 1135     Declarator DeclaratorInfo(DS, DeclaratorContext::TypeNameContext);
 1237   Declarator DeclaratorInfo(DS, DeclaratorContext::TypeNameContext);
 2549             DeclaratorContext::MemberContext, DeclEnd, AccessAttrs, AS)));
 2592     return ParseUsingDeclaration(DeclaratorContext::MemberContext, TemplateInfo,
 2640   ParsingDeclarator DeclaratorInfo(*this, DS, DeclaratorContext::MemberContext);
 2899         !MightBeDeclarator(DeclaratorContext::MemberContext)) {
 3791                                    ? DeclaratorContext::TrailingReturnVarContext
 3792                                    : DeclaratorContext::TrailingReturnContext);
tools/clang/lib/Parse/ParseExpr.cpp
 1036             Declarator DeclaratorInfo(DS, DeclaratorContext::TypeNameContext);
 1262       Declarator DeclaratorInfo(DS, DeclaratorContext::TypeNameContext);
 1911         Declarator DeclaratorInfo(DS, DeclaratorContext::TypeNameContext);
 2505     Declarator DeclaratorInfo(DS, DeclaratorContext::TypeNameContext);
 2988   Declarator DeclaratorInfo(DS, DeclaratorContext::BlockLiteralContext);
 3027   Declarator ParamInfo(DS, DeclaratorContext::BlockLiteralContext);
tools/clang/lib/Parse/ParseExprCXX.cpp
 1232   Declarator D(DS, DeclaratorContext::LambdaExprContext);
 1519   Declarator DeclaratorInfo(DS, DeclaratorContext::TypeNameContext);
 1826   Declarator DeclaratorInfo(DS, DeclaratorContext::FunctionalCastContext);
 1972         ParseSimpleDeclaration(DeclaratorContext::InitStmtContext, DeclEnd,
 1982         DeclaratorContext::ForContext, DeclEnd, attrs, false, FRI);
 1998   Declarator DeclaratorInfo(DS, DeclaratorContext::ConditionContext);
 2625   Declarator D(DS, DeclaratorContext::ConversionIdContext);
 2953   Declarator DeclaratorInfo(DS, DeclaratorContext::CXXNewContext);
 3488     Declarator DeclaratorInfo(DS, DeclaratorContext::TypeNameContext);
 3566   Declarator DeclaratorInfo(DS, DeclaratorContext::TypeNameContext);
tools/clang/lib/Parse/ParseObjc.cpp
  660             ParseDeclaration(DeclaratorContext::FileContext, DeclEnd, attrs));
 1139                                         DeclaratorContext Context) {
 1146                           Context == DeclaratorContext::ObjCParameterContext);
 1234                                      DeclaratorContext context,
 1258     if (context == DeclaratorContext::ObjCResultContext)
 1280       if (context == DeclaratorContext::ObjCParameterContext)
 1344     ReturnType = ParseObjCTypeName(DSRet, DeclaratorContext::ObjCResultContext,
 1407                                        DeclaratorContext::ObjCParameterContext,
 1484     Declarator ParmDecl(DS, DeclaratorContext::PrototypeContext);
 1691       Declarator D(DS, DeclaratorContext::TypeNameContext);
 2535           Declarator ParmDecl(DS, DeclaratorContext::ObjCCatchContext);
 2951   Declarator DeclaratorInfo(DS, DeclaratorContext::TypeNameContext);
tools/clang/lib/Parse/ParseOpenMP.cpp
  272         ParseTypeName(&Range, DeclaratorContext::PrototypeContext, AS);
  606   DeclaratorContext Context = DeclaratorContext::PrototypeContext;
  606   DeclaratorContext Context = DeclaratorContext::PrototypeContext;
tools/clang/lib/Parse/ParseStmt.cpp
  217         Decl = ParseDeclaration(DeclaratorContext::BlockContext, DeclEnd, Attrs,
  221             ParseDeclaration(DeclaratorContext::BlockContext, DeclEnd, Attrs);
 1101             ParseDeclaration(DeclaratorContext::BlockContext, DeclEnd, attrs);
 1719         DeclaratorContext::ForContext, DeclEnd, attrs, false,
 2305     Declarator ExDecl(DS, DeclaratorContext::CXXCatchContext);
tools/clang/lib/Parse/ParseTemplate.cpp
   27     DeclaratorContext Context, SourceLocation &DeclEnd,
   64     DeclaratorContext Context, SourceLocation &DeclEnd,
  177     DeclaratorContext Context, const ParsedTemplateInfo &TemplateInfo,
  191   if (Context == DeclaratorContext::MemberContext) {
  266     if (Context != DeclaratorContext::FileContext) {
  659                                DeclaratorContext::TemplateTypeArgContext).get();
  792   Declarator ParamDecl(DS, DeclaratorContext::TemplateParamContext);
 1346         /*Range=*/nullptr, DeclaratorContext::TemplateArgContext);
 1414 Decl *Parser::ParseExplicitInstantiation(DeclaratorContext Context,
tools/clang/lib/Parse/Parser.cpp
  864       return ParseDeclaration(DeclaratorContext::FileContext, DeclEnd, attrs);
  874       return ParseDeclaration(DeclaratorContext::FileContext, DeclEnd, attrs);
  885         return ParseDeclaration(DeclaratorContext::FileContext, DeclEnd, attrs);
  894         return ParseDeclaration(DeclaratorContext::FileContext, DeclEnd, attrs);
  909           ParseExplicitInstantiation(DeclaratorContext::FileContext, ExternLoc,
 1091     Decl *TheDecl = ParseLinkage(DS, DeclaratorContext::FileContext);
 1095   return ParseDeclGroup(DS, DeclaratorContext::FileContext);
 1394     Declarator ParmDeclarator(DS, DeclaratorContext::KNRTypeListContext);
tools/clang/lib/Sema/SemaCodeComplete.cpp
 4945     if (D.getContext() == DeclaratorContext::MemberContext &&
tools/clang/lib/Sema/SemaDecl.cpp
 5000   Declarator Dc(DS, DeclaratorContext::MemberContext);
 5094   Declarator Dc(DS, DeclaratorContext::TypeNameContext);
12326   Declarator D(DS, DeclaratorContext::ForContext);
13255         Declarator ParamD(DS, DeclaratorContext::KNRTypeListContext);
14174   Declarator D(DS, DeclaratorContext::BlockContext);
tools/clang/lib/Sema/SemaDeclCXX.cpp
  712            : D.getContext() == DeclaratorContext::ConditionContext
14760   Declarator TheDeclarator(DS, DeclaratorContext::MemberContext);
tools/clang/lib/Sema/SemaDeclObjC.cpp
 1584     Declarator D(DS, DeclaratorContext::TypeNameContext);
tools/clang/lib/Sema/SemaType.cpp
   50   if (D.getContext() != DeclaratorContext::BlockLiteralContext ||
 1327         declarator.getContext() == DeclaratorContext::LambdaExprContext) {
 1332                    DeclaratorContext::LambdaExprContext ||
 1683   if (declarator.getContext() == DeclaratorContext::BlockLiteralContext)
 2966     case DeclaratorContext::LambdaExprContext:
 2970     case DeclaratorContext::ObjCParameterContext:
 2971     case DeclaratorContext::ObjCResultContext:
 2972     case DeclaratorContext::PrototypeContext:
 2975     case DeclaratorContext::LambdaExprParameterContext:
 3008     case DeclaratorContext::MemberContext: {
 3024     case DeclaratorContext::CXXCatchContext:
 3025     case DeclaratorContext::ObjCCatchContext:
 3028     case DeclaratorContext::TemplateParamContext:
 3034     case DeclaratorContext::BlockLiteralContext:
 3037     case DeclaratorContext::TemplateArgContext:
 3045     case DeclaratorContext::TemplateTypeArgContext:
 3048     case DeclaratorContext::AliasDeclContext:
 3049     case DeclaratorContext::AliasTemplateContext:
 3052     case DeclaratorContext::TrailingReturnContext:
 3053     case DeclaratorContext::TrailingReturnVarContext:
 3058     case DeclaratorContext::ConversionIdContext:
 3063     case DeclaratorContext::FunctionalCastContext:
 3067     case DeclaratorContext::TypeNameContext:
 3070     case DeclaratorContext::FileContext:
 3071     case DeclaratorContext::BlockContext:
 3072     case DeclaratorContext::ForContext:
 3073     case DeclaratorContext::InitStmtContext:
 3074     case DeclaratorContext::ConditionContext:
 3079     case DeclaratorContext::CXXNewContext:
 3085     case DeclaratorContext::KNRTypeListContext:
 3143                D.getContext() != DeclaratorContext::LambdaExprContext) {
 3148                            DeclaratorContext::LambdaExprParameterContext
 3163     case DeclaratorContext::TrailingReturnContext:
 3164     case DeclaratorContext::TrailingReturnVarContext:
 3169     case DeclaratorContext::FileContext:
 3170     case DeclaratorContext::MemberContext:
 3171     case DeclaratorContext::BlockContext:
 3172     case DeclaratorContext::ForContext:
 3173     case DeclaratorContext::InitStmtContext:
 3174     case DeclaratorContext::BlockLiteralContext:
 3175     case DeclaratorContext::LambdaExprContext:
 3180     case DeclaratorContext::AliasDeclContext:
 3182     case DeclaratorContext::AliasTemplateContext:
 3185     case DeclaratorContext::TypeNameContext:
 3186     case DeclaratorContext::FunctionalCastContext:
 3187     case DeclaratorContext::ConversionIdContext:
 3188     case DeclaratorContext::TemplateParamContext:
 3189     case DeclaratorContext::CXXNewContext:
 3190     case DeclaratorContext::CXXCatchContext:
 3191     case DeclaratorContext::ObjCCatchContext:
 3192     case DeclaratorContext::TemplateArgContext:
 3193     case DeclaratorContext::TemplateTypeArgContext:
 3196     case DeclaratorContext::PrototypeContext:
 3197     case DeclaratorContext::LambdaExprParameterContext:
 3198     case DeclaratorContext::ObjCParameterContext:
 3199     case DeclaratorContext::ObjCResultContext:
 3200     case DeclaratorContext::KNRTypeListContext:
 3205     case DeclaratorContext::ConditionContext:
 3254   if (D.getContext() == DeclaratorContext::ConditionContext)
 3370       if (D.getContext() == DeclaratorContext::CXXNewContext)
 3487     } else if (D.getContext() == DeclaratorContext::LambdaExprContext) {
 4031     D.getContext() == DeclaratorContext::AliasDeclContext ||
 4032     D.getContext() == DeclaratorContext::AliasTemplateContext;
 4160     switch (auto context = state.getDeclarator().getContext()) {
 4161     case DeclaratorContext::ObjCParameterContext:
 4162     case DeclaratorContext::ObjCResultContext:
 4163     case DeclaratorContext::PrototypeContext:
 4164     case DeclaratorContext::TrailingReturnContext:
 4165     case DeclaratorContext::TrailingReturnVarContext:
 4169     case DeclaratorContext::MemberContext:
 4183     case DeclaratorContext::FileContext:
 4184     case DeclaratorContext::KNRTypeListContext: {
 4201               (context == DeclaratorContext::ObjCParameterContext ||
 4202                context == DeclaratorContext::ObjCResultContext);
 4238     case DeclaratorContext::ConversionIdContext:
 4242     case DeclaratorContext::AliasDeclContext:
 4243     case DeclaratorContext::AliasTemplateContext:
 4244     case DeclaratorContext::BlockContext:
 4245     case DeclaratorContext::BlockLiteralContext:
 4246     case DeclaratorContext::ConditionContext:
 4247     case DeclaratorContext::CXXCatchContext:
 4248     case DeclaratorContext::CXXNewContext:
 4249     case DeclaratorContext::ForContext:
 4250     case DeclaratorContext::InitStmtContext:
 4251     case DeclaratorContext::LambdaExprContext:
 4252     case DeclaratorContext::LambdaExprParameterContext:
 4253     case DeclaratorContext::ObjCCatchContext:
 4254     case DeclaratorContext::TemplateParamContext:
 4255     case DeclaratorContext::TemplateArgContext:
 4256     case DeclaratorContext::TemplateTypeArgContext:
 4257     case DeclaratorContext::TypeNameContext:
 4258     case DeclaratorContext::FunctionalCastContext:
 4495               D.getContext() == DeclaratorContext::KNRTypeListContext)) {
 4520           D.getContext() != DeclaratorContext::LambdaExprParameterContext) {
 4583           } else if (D.getContext() != DeclaratorContext::LambdaExprContext &&
 4613             D.getContext() == DeclaratorContext::BlockLiteralContext)
 4754             << (D.getContext() == DeclaratorContext::AliasDeclContext ||
 4755                 D.getContext() == DeclaratorContext::AliasTemplateContext);
 4930                      DeclaratorContext::MemberContext;
 5096       if ((D.getContext() == DeclaratorContext::MemberContext ||
 5097            D.getContext() == DeclaratorContext::LambdaExprContext) &&
 5126         D.getContext() != DeclaratorContext::TemplateArgContext &&
 5127         D.getContext() != DeclaratorContext::TemplateTypeArgContext) {
 5189       (D.getContext() == DeclaratorContext::PrototypeContext ||
 5190        D.getContext() == DeclaratorContext::LambdaExprParameterContext))
 5201     case DeclaratorContext::PrototypeContext:
 5202     case DeclaratorContext::LambdaExprParameterContext:
 5221     case DeclaratorContext::TemplateParamContext:
 5239     case DeclaratorContext::FileContext:
 5240     case DeclaratorContext::KNRTypeListContext:
 5241     case DeclaratorContext::ObjCParameterContext:  // FIXME: special diagnostic
 5243     case DeclaratorContext::ObjCResultContext:     // FIXME: special diagnostic
 5245     case DeclaratorContext::TypeNameContext:
 5246     case DeclaratorContext::FunctionalCastContext:
 5247     case DeclaratorContext::CXXNewContext:
 5248     case DeclaratorContext::AliasDeclContext:
 5249     case DeclaratorContext::AliasTemplateContext:
 5250     case DeclaratorContext::MemberContext:
 5251     case DeclaratorContext::BlockContext:
 5252     case DeclaratorContext::ForContext:
 5253     case DeclaratorContext::InitStmtContext:
 5254     case DeclaratorContext::ConditionContext:
 5255     case DeclaratorContext::CXXCatchContext:
 5256     case DeclaratorContext::ObjCCatchContext:
 5257     case DeclaratorContext::BlockLiteralContext:
 5258     case DeclaratorContext::LambdaExprContext:
 5259     case DeclaratorContext::ConversionIdContext:
 5260     case DeclaratorContext::TrailingReturnContext:
 5261     case DeclaratorContext::TrailingReturnVarContext:
 5262     case DeclaratorContext::TemplateArgContext:
 5263     case DeclaratorContext::TemplateTypeArgContext:
 5866   if (D.getContext() != DeclaratorContext::ObjCParameterContext &&
 5867       D.getContext() != DeclaratorContext::AliasDeclContext &&
 5868       D.getContext() != DeclaratorContext::AliasTemplateContext)
 7420       (D.getContext() == DeclaratorContext::MemberContext &&
 7425       (D.getContext() == DeclaratorContext::AliasDeclContext && !IsPointee) ||
 7455       (D.getContext() == DeclaratorContext::FileContext && T->isSamplerT()))
 7480       if (D.getContext() == DeclaratorContext::TemplateArgContext) {
 7482       } else if (D.getContext() == DeclaratorContext::FileContext) {