- User Since
- Nov 22 2017, 6:02 AM (78 w, 2 d)
Mon, May 13
Sun, May 5
Awesome! I do not have commit permissions though, so can you do the actual commit?
- Address final CR comments by rsmith
Sat, May 4
@rsmith are we done with CR on this?
Sat, Apr 27
- removed old handling of constrained-parameters for type-constraints
- use template-id annotations during parsing to avoid tentative parses and set the ground for placeholder type-constraints
- add source information to the new TypeConstraint class, which shares a base class (ConceptReference) with ConceptSpecializationExpr
- change TemplateTypeParmDecl to not return true for wasDeclaredWithTypename if a type-constraint was present (and update places that assumed only 'class' or 'typename' were possible)
Apr 22 2019
- Address CR comment
- Adjust to new getAssociatedConstraints interface
- Add destructor and conversion operator tests
Renamed PartSpec to PartSpec2 (CR)
- Fixed importing of ACs when importing partial specs.
- Adjust to getAssociatedConstraints interface change
Adjusted to changes in getAssociatedConstraints interface
- Address CR comments by rsmith
- Remove obsolete TODOs
- Fix redeclaration checking
- Change getAssociatedConstraints interface
- Add requires clause to ASTNodeTraverser
Apr 21 2019
Address CR comments by rsmith
Apr 20 2019
- Remove #ifs from test
- Updated test diagnostics
- Remove #if from test
- Rebase onto trunk
- Fixed ignoring of ScopeSpecifier in constrained parameter in compound requirements
- Fixed incorrect substitution and type deduction into constrained parameter return type requirement (depth was not being considered)
- Fix incorrect check for unevaluated context for requires expr local parameters.
- Added short-circuiting to the substitution-satisfaction check
- Disallow plain 'auto' in return type requirement
- Fixed bug where diagnosed but successful substitution would count as valid
- Add non-SFINAE CodeSynthesisContext to nested requirement constraints check
- Remove a shortcut 'if' in compound requirements which was non-conforming
- Split requires expr parameter and body scopes
- Add missing CorrectDelayedTyposInExpr
- Add RequiresBodyDecl to switch where it was missing
- Predefine __cpp_concepts when concepts are activated
- Deal with cases where substitution failed but no diagnostic is available
Apr 18 2019
- Fixed bad ordering of associated constraints
- Fixed ignoring of ScopeSpecifier in constrained parameters
- Adjustments for template template parameter handling
- Fixed constrained template template parameter and argument handling
Apr 13 2019
- Add diagnostic explaining the unintuitive subsumption rules when user might be relying on expression equivalence for odering
- Fixed incorrect checking of trailing requires clause subsumption
- Fixed missing conversion constraint checking
- Fixed constraint checking in function templates to recognize function parameters
- Address CR comments by rsmith
- Move TrailingRequiresClause to ExtInfo
- Fixed diagnostic styling
- Correct checking of constrained virtual functions
- Small formatting fixes
- Parse constraint-logical-or-expressions in requires clauses
- Parse the requires clause as part of the init-declarator, member-declarator or function-definition
- No dirty diagnostic suppression when trying to parse switched-order trailing requires and return type
Fixed bug in normalization substitution into CSEs
Rebase onto trunk
Rebase onto trunk
Apr 12 2019
Rebase onto trunk
Fix wrong patch uploaded
Add new CodeSynthesisContexts to switch where they were missing
Moved from getLocStart, getLocEnd to getBeginLoc, getEndLoc. Rebase onto master/trunk.
Apr 10 2019
Apr 9 2019
Only the TemplatedDecl issue remains, all other comments have been addressed and we're rebased onto master.
@rsmith please reply to the last comment, and lets finally start merging these :)
Address most of rsmith's CR comments, rebase onto trunk
Aug 18 2018
- Address CR comments - add FoundDecl tracking, instantiationdependent calculation, display non-constant expression diagnostic notes
Aug 17 2018
- Adjusted to new CodeSynthesisContexts, added tests for them.
- Fix bad reference to getRequiresClause on TemplateDecl in assertion
- Fix bad ArgsAsWritten assertion, add missing null initializer in ConceptSpecializationExpr.
Aug 15 2018
- Address comments by rsmith, mainly removing associated constraints caching and instead returning a smallvector of constraint expressions from getAssociatedConstraints.
Aug 13 2018
Address Arthur's comments, add missing CorrectDelayedTyposInExpr
Aug 11 2018
Removed unused "note_in_concept_specialization" diagnostic ID.
Aug 10 2018
Address Richard's CR comments. Among other things:
- CSEs overhauled and now store both source and converted template arguments (latter are tail-allocated), template KW location and NNS.
- CSEs no longer violate layering - satisfaction check now moved back to CheckConceptTemplateId.
- CodeSynthesisContexts created for both the act of checking the associated constraints of a template or the constraint expression of a concept (non-SFINAE), and for the act of substituting template arguments into a(n atomic) constraint expression (SFINAE).
- Added more tests for cases where substitution leads to a non-SFINAE failure and emits diagnostics
- Fixed and added test for incorrect conversion of instantiated CSE argument list.
Aug 8 2018
- Moved constraint checks to the end of FinishTemplateArgumentDeduction
- Predefine __cpp_concepts when supported
Aug 7 2018
- Deal with cases where substitution fails but no diagnostic is available
@rsmith - thanks for the responses!
Will also address the comments I haven't responded to soon.
Aug 6 2018
Split TryParseConstrainedParameter and ParseConstrainedTemplateParameter in preparation for requries expressions.
- Fix bad diagnostic detection and suppression
- Fix bad handling of checking of deduced arguments in function templates
Adjusted to switch to ASTTemplateArgumentListInfo
Aug 5 2018
- Adjusted to switch to ASTTemplateArgumentList
- Consider requires clause when determining if TPL has an unexpanded pack
- Switch to ASTTemplateArgumentListInfo, add ConstantEvaluated context when parsing constraints
May 16 2018
Adjusted to changes in dependent patches.
- Fixed handling of empty/non-expression after trailing requires keyword.
- Unified satisfaction check for templated/non-templated constraint exprs
- Adjusted constraint normalization to piecewise constraint substitution
- Normalized constraints are now represented as described in the standard (a non-substituted expression along with a list of "template arguments").
Apr 5 2018
Adjusted to piecewise substitution.
- Constraint satisfaction will no longer happen for depenent CSEs (was originally needed for normalization, but not worth the trouble with the new piecewise substitution and the fact that it prevents short-circuting)
- Constraint satisfaction checking now breaks down unsatisfied constraint exprs into atomic constraints with the ill-formed diagnostic or the substituted constraint expression for each, later consumed by the diagnostic functions.
Apr 4 2018
- Switched to piecewise substitution of atomic constraints when evaluating constraint expressions
- Added tests for piecewise substitution behavior
- Removed some redundant parentheses
Mar 16 2018
Mar 15 2018
Fixed another SpecializedConcept reference to NamedConcept.
Fixed SpecializedConcept reference to NamedConcept.
Adjusted to changes in D41217
Fixed reference to TemplateParams member in assertion.
Mar 14 2018
Applied missing clang-format.
Addressed most comments.
Mar 10 2018
- Correct handling of non-substitutable concept specialization expressions.
Fixed crash caused by substitution of pack expansion into non-pack parameters in constraint expressions.
- Fixed incorrect checking of atomic constraint types.
Feb 15 2018
Feb 11 2018
- Addressed comments: Added semantic tests for value and template concepts, removed extra period and modified CSE ctor to fit in nicer.
Feb 3 2018
Moved function into SemaConcept.cpp.
- Moved general concepts-related function into SemaConcept.cpp
Feb 2 2018
- When a conjunction constraint expression has both sides false, both sides will now be diagnosed.
Jan 10 2018
- Better handling of diagnostics in ConceptSpecializationExprs, correctly written to and read from module files.
- Modified Error messages according to some user feedback
- Fixed wrong if that would cause valid instantiated requires clauses to not be accepted.
Dec 24 2017
Reverted to original constraint parsing code.