Commit c6202fe
committed
Parser/CodeGen fixes: rounds 28-30 stress testing
Parser fixes:
- extern template: hoisted to preNs (global scope before namespace Processing)
- __attribute__((packed)) before struct name now consumed
- noexcept after const on member function pointer now consumed
- (int[]){...} compound literal: looksLikeCast and parseCast now handle
[] array declarators in cast position
- using X::Y in statement scope: broadened handler to catch all using forms
- using STATEMENT_KEYWORDS: added 'using' so looksLikeDeclaration rejects it
- canStartExpression: added sizeof, alignof, decltype, throw, true, false,
nullptr, *, +, { so casts like (void)sizeof(...) parse correctly
- co_await/co_yield as expressions: parsePrimary now handles both as
unary prefix operators (previously only worked as statements)
- inline constexpr variable: looksLikeTopLevelDeclarationOrFunction now
consumes constexpr/consteval/constinit after inline
- Class<T>::method qualified name: after template specialization args,
parser now consumes :: and member name for out-of-class specializations
- namespace alias: parseNamespaceDecl returns PreprocessorLine for
'namespace A = B::C' form instead of empty NamespaceDecl
- parseNamespaceDecl return type changed to TopLevelItem
CodeGen fixes:
- template<> now emitted for explicit specializations (empty param list
with qualified name containing < and ::)
- co_return emitted correctly via isCoReturn flag on ReturnStatement
- AstStmt: ReturnStatement gains isCoReturn boolean field
CppBuild fixes:
- extern template hoisted to preNs in both static and active sketch paths
- namespace alias deferred (emitted after namespace definitions)
- inline variable parsing: constexpr after inline now recognized1 parent 084024d commit c6202fe
56 files changed
Lines changed: 138448 additions & 74 deletions
File tree
- dist
- mode
- scripts
- src
- java
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
Binary file not shown.
Binary file not shown.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
Binary file not shown.
0 commit comments