Home | History | Annotate | Download | only in Parse

Lines Matching refs:Name

30     // template name
79 // a template name.
145 /// \brief Parse global scope or nested-name-specifier if present.
147 /// Parses a C++ global scope specifier ('::') or nested-name-specifier (which
151 /// '::'[opt] nested-name-specifier
154 /// nested-name-specifier:
155 /// type-name '::'
156 /// namespace-name '::'
157 /// nested-name-specifier identifier '::'
158 /// nested-name-specifier 'template'[opt] simple-template-id '::'
162 /// nested-name-specifier (or empty)
164 /// \param ObjectType if this nested-name-specifier is being parsed following
169 /// the nested-name-specifier after parsing it.
172 /// indicates whether this nested-name-specifier may be part of a
173 /// pseudo-destructor name. In this case, the flag will be set false
174 /// if we don't actually end up parsing a destructor name. Moreorover,
175 /// if we do end up determining that we are parsing a destructor name,
176 /// the last component of the nested-name-specifier is not parsed as
179 /// \param IsTypename If \c true, this nested-name-specifier is known to be
180 /// part of a type name. This is used to improve error recovery.
184 /// nested-name-specifier, if any.
226 // ::new and ::delete aren't nested-name-specifiers.
279 // ::class-name-or-namespace-name::...
281 // the class-name-or-namespace-name is looked up in global scope as a
282 // class-name or namespace-name.
285 // seen a leading '::' or part of a nested-name-specifier.
289 // Code completion for a nested-name-specifier, where the code
302 // nested-name-specifier:
303 // nested-name-specifier 'template'[opt] simple-template-id '::'
309 // nested-name-specifier, since they aren't allowed to start with
347 // to a template name, such as T::template apply, but is not a
377 // the right kind (it should name a type or be dependent), and then
378 // convert it into a type within the nested-name-specifier.
386 *LastII = TemplateId->Name;
418 // The rest of the nested-name-specifier possibilities start with
425 // nested-name-specifier:
426 // type-name '::'
427 // namespace-name '::'
428 // nested-name-specifier identifier '::'
486 // We have an identifier followed by a '::'. Lookup this name
487 // as the name in a nested-name-specifier.
502 // Identifier is not recognized as a nested name, but we can have
519 // nested-name-specifier:
520 // type-name '<'
533 // We have found a template name, so annotate this token
551 // before 'getAs' and treat this as a dependent template name.
579 // nested-name-specifier, so we're done.
583 // Even if we didn't see any pieces of a nested-name-specifier, we
595 UnqualifiedId Name;
600 /*ObjectType=*/ParsedType(), TemplateKWLoc, Name))
608 return Actions.ActOnIdExpression(getCurScope(), SS, TemplateKWLoc, Name,
621 /// '::'[opt] nested-name-specifier 'template'[opt] unqualified-id
630 /// '::' '~' class-name
645 /// '::'[opt] nested-name-specifier 'template'[opt] unqualified-id
658 // '::'[opt] nested-name-specifier 'template'[opt] unqualified-id
1262 /// 'dynamic_cast' '<' type-name '>' '(' expression ')'
1263 /// 'static_cast' '<' type-name '>' '(' expression ')'
1264 /// 'reinterpret_cast' '<' type-name '>' '(' expression ')'
1265 /// 'const_cast' '<' type-name '>' '(' expression ')'
1443 /// . or -> operator, and nested-name-specifier have already been
1447 /// postfix-expression . pseudo-destructor-name
1448 /// postfix-expression -> pseudo-destructor-name
1450 /// pseudo-destructor-name:
1451 /// ::[opt] nested-name-specifier[opt] type-name :: ~type-name
1452 /// ::[opt] nested-name-specifier template simple-template-id ::
1453 /// ~type-name
1454 /// ::[opt] nested-name-specifier[opt] ~type-name
1461 // We're parsing either a pseudo-destructor-name or a dependent
1463 // pseudo-destructor-name. We parse both in the same way and let
1466 // Note that the ::[opt] nested-name-specifier[opt] has already
1508 IdentifierInfo *Name = Tok.getIdentifierInfo();
1510 SecondTypeName.setIdentifier(Name, NameLoc);
1512 // If there is a '<', the second type name is a template-id. Parse
1516 Name, NameLoc,
1778 /// '::'[opt] nested-name-specifier[opt] type-name
1779 /// '::'[opt] nested-name-specifier 'template' simple-template-id [TODO]
1794 /// type-name:
1795 /// class-name
1796 /// enum-name
1797 /// typedef-name
1814 // type-name
1898 /// [dcl.name]), which is a non-empty sequence of type-specifiers,
1923 /// \param SS the nested-name-specifier that precedes this template-id, if
1926 /// \param Name for constructor and destructor names, this is the actual
1927 /// identifier that may be a template-name.
1929 /// \param NameLoc the location of the class-name in a constructor or
1933 /// nested-name-specifier.
1938 /// \param Id as input, describes the template-name or operator-function-id
1942 /// \param AssumeTemplateId When true, this routine will assume that the name
1943 /// refers to a template without performing name lookup to verify.
1948 IdentifierInfo *Name,
1981 // before 'getAs' and treat this as a dependent template name.
1982 std::string Name;
1984 Name = Id.Identifier->getName();
1986 Name = "operator ";
1988 Name += getOperatorSpelling(Id.OperatorFunctionId.Operator);
1990 Name += Id.Identifier->getName();
1993 << Name
2008 TemplateName.setIdentifier(Name, NameLoc);
2019 TemplateName.setIdentifier(Name, NameLoc);
2035 << Name << SS.getRange();
2067 // FIXME: Store name for literal operator too.
2069 TemplateId->Name = Id.Identifier;
2073 TemplateId->Name = nullptr;
2141 /// \param SS The nested-name-specifier that preceded this unqualified-id. If
2145 /// nested-name-specifier.
2161 // Determine what kind of operator name we have.
2190 #define OVERLOADED_OPERATOR(Name,Spelling,Token,Unary,Binary,MemberOnly) \
2193 Op = OO_##Name; \
2195 #define OVERLOADED_OPERATOR_MULTI(Name,Spelling,Unary,Binary,MemberOnly)
2227 // Code completion for the operator name.
2353 /// name of an entity.
2361 /// ~ class-name
2366 /// \param SS The nested-name-specifier that preceded this unqualified-id. If
2370 /// nested-name-specifier.
2372 /// \param AllowDestructorName whether we allow parsing of a destructor name.
2374 /// \param AllowConstructorName whether we allow parsing a constructor name.
2415 // We have parsed a constructor name.
2441 // If the template-name names the current class, then this is a constructor
2442 if (AllowConstructorName && TemplateId->Name &&
2443 Actions.isCurrentClassName(*TemplateId->Name, getCurScope(), &SS)) {
2445 // C++ [class.qual]p2 specifies that a qualified template-name
2446 // is taken as the constructor name where a constructor can be
2451 << TemplateId->Name
2454 ParsedType Ty = Actions.getTypeName(*TemplateId->Name,
2507 // class-name. The ambiguity is resolved in favor of treating ~ as a
2523 // Parse the class-name.
2561 // Parse the class-name (or template-name in a simple-template-id).
2573 // Note that this is a destructor name.
2854 #define TYPE_TRAIT_1(Spelling, Name, Key) \
2855 case tok::kw_ ## Spelling: return UTT_ ## Name;
2856 #define TYPE_TRAIT_2(Spelling, Name, Key) \
2857 case tok::kw_ ## Spelling: return BTT_ ## Name;
2859 #define TYPE_TRAIT_N(Spelling, Name, Key) \
2860 case tok::kw_ ## Spelling: return TT_ ## Name;