Skip to content

Commit 749489f

Browse files
committed
Correctly mark has_typename. Fixes #123
1 parent 20e83a9 commit 749489f

File tree

2 files changed

+8
-9
lines changed

2 files changed

+8
-9
lines changed

cxxheaderparser/parser.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,8 +607,9 @@ def _parse_template_decl(self) -> TemplateDecl:
607607
lex.return_token(ptok)
608608
param = self._parse_template_type_parameter(tok, None)
609609
else:
610+
lex.return_token(ptok)
610611
param, _ = self._parse_parameter(
611-
ptok,
612+
tok,
612613
TemplateNonTypeParam,
613614
concept_ok=False,
614615
deduce_this_ok=False,

tests/test_template.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,8 @@ def test_template_dependent_nontype_default() -> None:
281281
segments=[
282282
NameSpecifier(name="T"),
283283
NameSpecifier(name="type"),
284-
]
284+
],
285+
has_typename=True,
285286
)
286287
),
287288
name="n",
@@ -1098,7 +1099,7 @@ class concat_iterator
10981099
void_t<decltype(((*std::declval<P>()).*std::declval<F>())(std::declval<T>()...))>>
10991100
: std::true_type {};
11001101
1101-
template <typename T...>
1102+
template <typename... T>
11021103
struct S : public T... {};
11031104
"""
11041105
data = parse_string(content, cleandoc=True)
@@ -1636,12 +1637,9 @@ class concat_iterator
16361637
],
16371638
template=TemplateDecl(
16381639
params=[
1639-
TemplateNonTypeParam(
1640-
type=Type(
1641-
typename=PQName(
1642-
segments=[NameSpecifier(name="T")]
1643-
)
1644-
),
1640+
TemplateTypeParam(
1641+
typekey="typename",
1642+
name="T",
16451643
param_pack=True,
16461644
)
16471645
]

0 commit comments

Comments
 (0)