Home | History | Annotate | Download | only in Sema

Lines Matching full:parameter

451 /// that the template parameter 'PrevDecl' is being shadowed by a new
455 assert(PrevDecl->isTemplateParameter() && "Not a template parameter");
462 // A template-parameter shall not be redeclared within its
471 /// the parameter D to reference the templated declaration and return a pointer
536 /// ActOnTypeParameter - Called when a C++ template type parameter
538 /// the keyword "typename" was used to declare the type parameter
541 /// parameter (NULL indicates an unnamed template parameter) and
542 /// ParamNameLoc is the location of the parameter name (if any).
543 /// If the type parameter has a default argument, it will be added
554 "Template type parameter not in template parameter scope!");
580 // Add the template parameter into the current scope.
587 // template-parameter that is not a template parameter pack.
600 // Check for unexpanded parameter packs.
617 /// \brief Check that the type of a non-type template parameter is
620 /// \returns the (possibly-promoted) parameter type if valid;
634 // A non-type template-parameter shall have one of the following
650 // C++ [temp.param]p5: The top-level cv-qualifiers on the template-parameter
657 // A non-type template-parameter of type "array of T" or
682 "Non-type template parameter not in template parameter scope!");
715 // Add the template parameter into the current scope.
722 // template-parameter that is not a template parameter pack.
730 // Check for unexpanded parameter packs.
749 /// parameter (e.g. T in template <template \<typename> class T> class array)
762 "Template template parameter not in template parameter scope!");
764 // Construct the parameter object.
773 // If the template template parameter has a name, then link the identifier
788 // template-parameter that is not a template parameter pack.
796 // try to check well-formedness now, because our template template parameter
800 // If none of the template template parameter's template arguments mention
810 // Check for unexpanded parameter packs.
895 // rebuilding some of the types used within the template parameter list,
979 // Ensure that the template parameter lists are compatible. Skip this check
980 // for a friend in a dependent context: the template parameter list itself
1015 // Maybe we will complain about the shadowed template parameter.
1030 // Check the template parameter list of this declaration, possibly
1031 // merging in the template parameter list from the previous class
1033 // context, because the template parameter list might be dependent.
1152 /// template parameter, which is ill-formed in certain contexts.
1183 // template-parameter-lists of the definition of a member of a
1205 /// \brief Check for unexpanded parameter packs within the template parameters
1206 /// of a template template parameter, recursively.
1209 // A template template parameter which is a parameter pack is also a pack
1236 /// \brief Checks the validity of a template parameter list, possibly
1237 /// considering the template parameter list from a previous
1240 /// If an "old" template parameter list is provided, it must be
1242 /// template parameter list.
1244 /// \param NewParams Template parameter list for a new template
1245 /// declaration. This template parameter list will be updated with any
1247 /// template parameter list.
1249 /// \param OldParams If provided, template parameter list from a
1251 /// arguments will be merged from the old template parameter list to
1252 /// the new template parameter list.
1255 /// template parameter list.
1289 // Variable used to diagnose non-final parameter packs
1308 "Parameter packs can't have a default argument!");
1331 // Check for unexpanded parameter packs.
1353 "Parameter packs can't have a default argument!");
1369 // parameter.
1383 // Check for unexpanded parameter packs, recursively.
1401 "Parameter packs can't have a default argument!");
1416 // that points to a previous template template parameter.
1431 // If a template parameter of a primary class template or alias template
1432 // is a template parameter pack, it shall be the last template parameter.
1442 // A template-parameter shall not be given default arguments
1449 // If a template-parameter of a class template has a default
1450 // template-argument, each subsequent template-parameter shall either
1451 // have a default template-argument supplied or be a template parameter
1460 // If we have an old template parameter list that we're merging
1461 // in, move on to the next parameter.
1488 /// parameter.
1543 /// Determines whether a given type depends on the given parameter
1571 /// \brief Match the given template parameter lists to the given scope
1572 /// specifier, returning the template parameter list that applies to the
1576 /// specifier or a template parameter list.
1581 /// parameter lists. This scope specifier precedes a qualified name that is
1584 /// \param ParamLists the template parameter lists, from the outermost to the
1585 /// innermost template parameter lists.
1587 /// \param NumParamLists the number of template parameter lists in ParamLists.
1596 /// \returns the template parameter list, if any, that corresponds to the
1598 /// parameter list may have template parameters (if we're declaring a
1615 // parameter lists. We first build this list by starting with the type named
1705 // to the innermost while checking template-parameter-lists.
1772 // against the corresponding template parameter list.
1838 // depend on the corresponding template parameter lists. But
1839 // assume that empty parameter lists are supposed to match this
1850 // Check the template parameter list, if we can.
1875 // parameter lists, then there are no template parameter lists remaining for
1880 // If there were too many template parameter lists, complain about that now.
1905 // We have a template parameter list with no corresponding scope, which
1928 // Return the last template parameter list, which corresponds to the
1972 // We might have a substituted template template parameter pack. If so,
2381 // or . is not dependent on a template-parameter, or the use
2446 // Check template type parameter.
2450 // A template-argument for a template-parameter which is a
2454 // We have a template type parameter but the template argument
2466 // We have a template type parameter but the template argument is an
2503 // We have a template type parameter but the template argument
2535 /// the given template type parameter.
2549 /// \param Param the template template parameter whose default we are
2553 /// parameters that precede \p Param in the template parameter list.
2589 /// the given non-type template parameter.
2603 /// \param Param the non-type template parameter whose default we are
2607 /// parameters that precede \p Param in the template parameter list.
2635 /// the given template template parameter.
2649 /// \param Param the template template parameter whose default we are
2653 /// parameters that precede \p Param in the template parameter list.
2695 /// \brief If the given template parameter has a default template
2758 /// template parameter.
2760 /// \param Param The template parameter against which the argument will be
2774 /// argument will be placed. Only valid if the parameter is a parameter pack.
2797 // Do substitution on the type of the non-type template parameter
2807 // Do substitution on the type of the non-type template parameter.
2820 // If that worked, check the non-type template parameter type
2897 // template, alias template, or template template parameter, and
2906 // We have a non-type template parameter but the template
2912 // form of the corresponding template-parameter.
2937 // Substitute into the template parameter list of the template
2938 // template parameter, since previously-supplied template arguments
2939 // may appear within the template template parameter.
2972 // We have a template template parameter but the template
2979 llvm_unreachable("Declaration argument with template template parameter");
2981 llvm_unreachable("Integral argument with template template parameter");
2983 llvm_unreachable("Null pointer argument with template template parameter");
3015 /// \brief Check whether the template parameter is a pack expansion, and if so,
3060 // corresponding parameter declared by the template in its
3061 // template-parameter-list.
3069 // If we have an expanded parameter pack, make sure we don't have too
3073 // We're done with this parameter pack. Pack up its arguments and add
3081 // This argument is assigned to the next parameter.
3085 // Not enough arguments for this parameter pack.
3109 // The template parameter was a template parameter pack, so take the
3111 // stay on the same template parameter so that we can deduce more
3116 // Move to the next template parameter.
3130 // If we were part way through filling in an expanded parameter pack,
3173 // If we have a template parameter pack with no more corresponding
3179 // A non-expanded parameter pack before the end of the parameter list
3180 // only occurs for an ill-formed template parameter list, unless we've
3198 // parameter. For each kind of template parameter, we substitute the
3200 // (when the template parameter was part of a nested template) into
3270 // parameter, keep track of the default template arguments from the
3275 // Move to the next template parameter and argument.
3529 /// template type parameter.
3548 // template-argument for a template type-parameter.
3670 // If our parameter has pointer type, check for a null template value.
3692 // template-parameter shall be one of: [...]
3699 // corresponding template-parameter is a reference; or
3812 // If the template parameter has pointer type, the function decays.
3817 // parameter has reference type, complain and (if things look
3853 // If the template parameter has pointer type, we must have taken
3858 // parameter has reference type, complain and (if things look
3880 // If the template parameter has pointer type but the address of
3911 // For a non-type template-parameter of type reference to
3915 // template-parameter is bound directly to the
3935 // argument and parameter types are compatible.
4002 // template-parameter shall be one of: [...]
4086 /// non-type template parameter.
4092 /// parameter after it has been instantiated.
4099 // If either the parameter has a dependent type or the argument is
4111 // corresponding template-parameter then the program is
4116 // -- for a non-type template-parameter of integral or
4121 // -- for a non-type template-parameter of integral or
4129 // template-parameter, the non-type template-parameter is used
4130 // in an expression in the function parameter-list and, if the
4133 // template-parameter exactly, except that a template-argument
4144 // FIXME: If there's no viable conversion to the template parameter type,
4152 // A template-argument for a non-type, non-template template-parameter
4155 // -- for a non-type template-parameter of integral or enumeration
4157 // template-parameter; or
4165 // Widen the argument value to sizeof(parameter type). This is almost
4166 // always a no-op, except when the parameter type is bool. In
4187 // template-parameter shall be one of:
4191 // -- the name of a non-type template-parameter; or
4220 // of the parameter and argument types.
4224 // Try to convert the argument to the parameter's type.
4245 // parameter.
4268 // based on the template parameter's type.
4274 // Complain if an unsigned parameter received a negative value.
4283 // Complain if we overflowed the template parameter's type.
4312 if (// -- For a non-type template-parameter of type pointer to
4319 // -- For a non-type template-parameter of type reference to
4325 // -- For a non-type template-parameter of type pointer to
4362 // -- for a non-type template-parameter of type pointer to
4377 // -- For a non-type template-parameter of type reference to
4381 // template-parameter is bound directly to the
4431 // -- For a non-type template-parameter of type pointer to data
4442 /// template template parameter.
4458 // A template-argument for a template template-parameter shall be
4462 // template template argument with the corresponding parameter;
4464 // parameter lists match that of the template template parameter.
4492 /// parameter, produce an expression that properly refers to that
4500 // A non-type template-parameter of type "array of T" or
4509 // parameter's type.
4526 // Determine whether the non-type template template parameter is of
4557 // the element type on the parameter could be more qualified than the
4575 // When the non-type template parameter is a pointer, take the
4596 // If the non-type template parameter has reference type, qualify the
4668 /// \brief Match two template parameters within template parameter lists.
4690 // Check that both are parameter packs are neither are parameter packs.
4692 // template template parameter, the template template parameter can have
4693 // a parameter pack where the template template argument does not.
4717 // For non-type template parameters, check the type of the parameter.
4723 // template parameter and one of the non-type template parameter types
4753 // For template template parameters, check the template parameter types.
4754 // The template parameter lists of template template
4793 /// \brief Determine whether the given template parameter lists are
4796 /// \param New The new template parameter list, typically written in the
4799 /// \param Old The old template parameter list, typically found via
4800 /// name lookup of the template declared with this template parameter
4804 /// the template parameter lists are not equivalent.
4806 /// \param Kind describes how we are to match the template parameter lists.
4809 /// are actually checking the template parameter list of a template
4810 /// argument (New) against the template parameter list of its
4811 /// corresponding template template parameter (Old). We produce
4814 /// \returns True if the template parameter lists are equal, false
4831 // A template-argument matches a template template-parameter (call it P)
4832 // when each of the template parameters in the template-parameter-list of
4834 // (call it A) matches the corresponding template parameter in the
4835 // template-parameter-list of P. [...]
4860 // [...] When P's template- parameter-list contains a template parameter
4861 // pack (14.5.3), the template parameter pack will match zero or more
4862 // template parameters or template parameter packs in the
4863 // template-parameter-list of A with the same type and form as the
4864 // template parameter pack in P (ignoring whether those template
4865 // parameters are template parameter packs).
5133 // non-type parameter. All other non-type arguments are
5147 // shall not involve a template parameter of the partial
5157 // -- The type of a template parameter corresponding to a
5159 // parameter of the specialization.
5264 // The template parameter list of a specialization shall not
5329 // Check for unexpanded parameter packs in any of the template arguments.
5366 // FIXME: Template parameter list matters, too
7304 // There is nothing to rebuild in a type parameter.
7308 // Rebuild the template parameter list of a template template parameter.
7318 // Rebuild the type of a non-type template parameter.