2014-06-12 Andrew Sutton <andrew.n.sutton@gmail.com>
commit30bf5ffed9797169638b2ca296298f6cd6a8adfb
authorasutton <asutton@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Jun 2014 20:42:37 +0000 (12 20:42 +0000)
committerasutton <asutton@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 12 Jun 2014 20:42:37 +0000 (12 20:42 +0000)
tree6430277e83477f29102b512b4532844df2f14ce8
parent4debb88df0053b486fad7397c180f06d0f143b93
2014-06-12  Andrew Sutton  <andrew.n.sutton@gmail.com>
* gcc/cp/constraint.cc (deduce_constrained_parameter): Refactor
common deduction framework into separate function.
(build_call_check): New.
(build_concept_check): Take additional arguments to support the
creation of constrained-type-specifiers from partial-concept-ids.
(build_constrained_parameter): Take arguments from a partial-concept-id.
* gcc/cp/cp-tree.h (build_concept_check, biuld_constrained_parameter):
Take a template argument list, defaulting to NULL_TREE.
* gcc/cp/parser.c (cp_parser_template_id): Check to see if a
template-id is a concept check.
(cp_check_type_concept): Reorder arguments
(cp_parser_allows_constrained_type_specifier): New. Check contexts
where a constrained-type-specifier is allowed.
(cp_maybe_constrained_type_specifier): New. Refactored common rules
for concept name checks.
(cp_maybe_partial_concept_id): New. Check for
constrained-type-specifiers.
* gcc/testuite/g++.dg/concepts/partial.C: New tests.
* gcc/testuite/g++.dg/concepts/partial-err.C: New tests.
* gcc/testuite/g++.dg/concepts/concepts.exp: Add missing test driver.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/c++-concepts@211591 138bc75d-0d04-0410-961f-82ee72b054a4
ChangeLog.concepts
gcc/cp/constraint.cc
gcc/cp/cp-tree.h
gcc/cp/parser.c
gcc/testsuite/g++.dg/concepts/concepts.exp [new file with mode: 0644]
gcc/testsuite/g++.dg/concepts/partial-err.C [new file with mode: 0644]
gcc/testsuite/g++.dg/concepts/partial.C [new file with mode: 0644]