Commit 6e00c77
committed
Rounds 14-15: binary literals, constexpr ctors, concepts, brace-init, >> in specializations
Parser:
- Binary literals (0b1010) in CppLexer
- constexpr constructors: parseFunctionOrConstructorOrDestructor consumes constexpr,
parseClassMember rebuilds FunctionDecl with isConstexpr=true
- Friend function templates: outer templateParams passed to friend handler
- >> in partial specialization args: depth-2 decrement + both > tokens consumed
- Ts&&... in params: ... added to allowed set after && rvalue-ref check
- std::pair{...} brace-init in expression context: parsePostfix handles {
after Identifier/ScopedName
- while (auto val = decl) condition: raw scan to = for declaration form
- sizeof...(Ts) in template args: full expression preserved
- HeadOf15<TypeList15<H, Ts...>> specialization: >> handled correctly
CodeGen:
- Constructor init: brace {} used for InitializerListExpr args
- Friend binary operators: template<> prefix emitted before friend keyword
- Static constexpr members emit constexpr
CppBuild:
- Concept ordering: requires-body concepts not misclassified as deduction guides
- Deduction guide detection excludes concept/requires keywords1 parent 1d5595e commit 6e00c77
2 files changed
Lines changed: 30 additions & 4 deletions
Binary file not shown.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
733 | 733 | | |
734 | 734 | | |
735 | 735 | | |
736 | | - | |
737 | | - | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
| 739 | + | |
| 740 | + | |
| 741 | + | |
| 742 | + | |
| 743 | + | |
738 | 744 | | |
739 | 745 | | |
740 | 746 | | |
| |||
1714 | 1720 | | |
1715 | 1721 | | |
1716 | 1722 | | |
1717 | | - | |
| 1723 | + | |
| 1724 | + | |
1718 | 1725 | | |
1719 | 1726 | | |
1720 | 1727 | | |
| |||
2485 | 2492 | | |
2486 | 2493 | | |
2487 | 2494 | | |
| 2495 | + | |
| 2496 | + | |
| 2497 | + | |
| 2498 | + | |
| 2499 | + | |
| 2500 | + | |
| 2501 | + | |
| 2502 | + | |
| 2503 | + | |
| 2504 | + | |
2488 | 2505 | | |
2489 | 2506 | | |
2490 | 2507 | | |
| |||
3477 | 3494 | | |
3478 | 3495 | | |
3479 | 3496 | | |
3480 | | - | |
| 3497 | + | |
| 3498 | + | |
| 3499 | + | |
| 3500 | + | |
| 3501 | + | |
| 3502 | + | |
| 3503 | + | |
| 3504 | + | |
| 3505 | + | |
| 3506 | + | |
3481 | 3507 | | |
3482 | 3508 | | |
3483 | 3509 | | |
| |||
0 commit comments