Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cxx: extract reference tags #3535

Draft
wants to merge 7 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Tmain/extras-field-for-pseudo-tags.d/stdout-expected.txt
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
!_TAG_ROLE_DESCRIPTION!C!header local /local header/
!_TAG_ROLE_DESCRIPTION!C!header system /system header/
!_TAG_ROLE_DESCRIPTION!C!macro undef /undefined/
!_TAG_ROLE_DESCRIPTION!C!member initialized /initialized with form '.member = ...'/
main input.c /^int main (void) { return 0; }$/
# option: --format=2
!_TAG_EXTRA_DESCRIPTION pseudo /Include pseudo tags/;" extras:pseudo
Expand Down Expand Up @@ -55,4 +56,5 @@ main input.c /^int main (void) { return 0; }$/
!_TAG_ROLE_DESCRIPTION!C!header local /local header/;" extras:pseudo
!_TAG_ROLE_DESCRIPTION!C!header system /system header/;" extras:pseudo
!_TAG_ROLE_DESCRIPTION!C!macro undef /undefined/;" extras:pseudo
!_TAG_ROLE_DESCRIPTION!C!member initialized /initialized with form '.member = ...'/;" extras:pseudo
main input.c /^int main (void) { return 0; }$/
1 change: 1 addition & 0 deletions Tmain/json-output-format.d/stdout-expected.txt
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "C", "kindName": "header", "path": "local", "pattern": "local header"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "C", "kindName": "header", "path": "system", "pattern": "system header"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "C", "kindName": "macro", "path": "undef", "pattern": "undefined"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "C", "kindName": "member", "path": "initialized", "pattern": "initialized with form '.member = ...'"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Go", "kindName": "package", "path": "imported", "pattern": "imported package"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Go", "kindName": "unknown", "path": "receiverType", "pattern": "receiver type"}
{"_type": "ptag", "name": "TAG_ROLE_DESCRIPTION", "parserName": "Python", "kindName": "module", "path": "imported", "pattern": "imported modules"}
Expand Down
6 changes: 4 additions & 2 deletions Tmain/list-kinds-full.d/stdout-expected.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
#LETTER NAME ENABLED REFONLY NROLES MASTER DESCRIPTION
D macroparam no no 0 C parameters inside macro definitions
L label no no 0 C goto labels
Y unknown no yes 4 C unknown identifier
d macro yes no 2 C macro definitions
e enumerator yes no 0 C enumerators (values inside an enumeration)
f function yes no 0 C function definitions
g enum yes no 0 C enumeration names
h header yes yes 2 C included header files
l local no no 0 C local variables
m member yes no 0 C struct, and union members
m member yes no 1 C struct, and union members
p prototype no no 0 C function prototypes
s struct yes no 0 C structure names
t typedef yes no 0 C typedefs
Expand All @@ -21,6 +22,7 @@ D macroparam no no 0 C parameters inside macro definitions
L label no no 0 C goto labels
N name no no 0 NONE names imported via using scope::symbol
U using no no 0 NONE using namespace statements
Y unknown no yes 4 C unknown identifier
Z tparam no no 0 NONE template parameters
c class yes no 0 NONE classes
d macro yes no 2 C macro definitions
Expand All @@ -29,7 +31,7 @@ f function yes no 0 C function definitions
g enum yes no 0 C enumeration names
h header yes yes 2 C included header files
l local no no 0 C local variables
m member yes no 0 C class, struct, and union members
m member yes no 1 C class, struct, and union members
n namespace yes no 0 NONE namespaces
p prototype no no 0 C function prototypes
s struct yes no 0 C structure names
Expand Down
405 changes: 280 additions & 125 deletions Tmain/list-roles.d/stdout-expected.txt

Large diffs are not rendered by default.

4 changes: 3 additions & 1 deletion Tmain/nested-subparsers.d/stdout-expected.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ x external and forward variable declarations [off]
z function parameters inside function or prototype definitions [off]
L goto labels [off]
D parameters inside macro definitions [off]
Y unknown identifier [off]
#
# list kinds Event
#
Expand All @@ -36,13 +37,14 @@ n name
#LETTER NAME ENABLED REFONLY NROLES MASTER DESCRIPTION
D macroparam no no 0 C parameters inside macro definitions
L label no no 0 C goto labels
Y unknown no yes 4 C unknown identifier
d macro yes no 2 C macro definitions
e enumerator yes no 0 C enumerators (values inside an enumeration)
f function yes no 0 C function definitions
g enum yes no 0 C enumeration names
h header yes yes 2 C included header files
l local no no 0 C local variables
m member yes no 0 C struct, and union members
m member yes no 1 C struct, and union members
p prototype no no 0 C function prototypes
s struct yes no 0 C structure names
t typedef yes no 0 C typedefs
Expand Down
6 changes: 6 additions & 0 deletions Units/parser-c.r/c-reftag-member.d/args.ctags
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
--sort=no
--extras=+r
--fields=+rKZ
--kinds-C=*
--roles-C.{member}=*
--roles-C.{unknown}=+{value}{defvar}
6 changes: 6 additions & 0 deletions Units/parser-c.r/c-reftag-member.d/expected.tags
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
ops input.c /^static struct ops file_ops = {$/;" unknown roles:defvar
file_ops input.c /^static struct ops file_ops = {$/;" variable typeref:struct:ops file: roles:def
read input.c /^ .read = file_read_fn,$/;" member scope:variable:file_ops roles:initialized
file_read_fn input.c /^ .read = file_read_fn,$/;" unknown scope:variable:file_ops roles:value
write input.c /^ .write = file_write_fn,$/;" member scope:variable:file_ops roles:initialized
file_write_fn input.c /^ .write = file_write_fn,$/;" unknown scope:variable:file_ops roles:value
4 changes: 4 additions & 0 deletions Units/parser-c.r/c-reftag-member.d/input.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
static struct ops file_ops = {
.read = file_read_fn,
.write = file_write_fn,
};
5 changes: 5 additions & 0 deletions Units/parser-c.r/c-reftags-unknown-ref.d/args.ctags
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
--sort=no
--extras=+r
--fields=+r
--kinds-C=*
--roles-C.{unknown}=*
13 changes: 13 additions & 0 deletions Units/parser-c.r/c-reftags-unknown-ref.d/expected.tags
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
x input.c /^struct x {$/;" s file: roles:def
y input.c /^ int y;$/;" m struct:x typeref:typename:int file: roles:def
X input.c /^enum X {$/;" g file: roles:def
A input.c /^ A, B$/;" e enum:X file: roles:def
B input.c /^ A, B$/;" e enum:X file: roles:def
i input.c /^extern int i;$/;" x typeref:typename:int roles:def
f input.c /^int f(int j)$/;" f typeref:typename:int roles:def
j input.c /^int f(int j)$/;" z function:f typeref:typename:int file: roles:def
j input.c /^ if (j == 0)$/;" Y function:f roles:ref
i input.c /^ return i + B + j + f(0);$/;" Y function:f roles:ref
B input.c /^ return i + B + j + f(0);$/;" Y function:f roles:ref
j input.c /^ return i + B + j + f(0);$/;" Y function:f roles:ref
f input.c /^ return i + B + j + f(0);$/;" Y function:f roles:applied
15 changes: 15 additions & 0 deletions Units/parser-c.r/c-reftags-unknown-ref.d/input.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
struct x {
int y;
};

enum X {
A, B
};

extern int i;
int f(int j)
{
if (j == 0)
return 0;
return i + B + j + f(0);
}
4 changes: 2 additions & 2 deletions Units/parser-cxx.r/bug639644.cpp.d/expected.tags
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
__anon21d591360111 input.h /^{$/;" n
foo input.h /^ int foo;$/;" v namespace:__anon21d591360111 typeref:typename:int
__anon21d591360112 input.h /^{$/;" n
foo input.h /^ int foo;$/;" v namespace:__anon21d591360112 typeref:typename:int
12 changes: 6 additions & 6 deletions Units/parser-cxx.r/namespace.cpp.d/expected.tags
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
__anon396601200111 input.cpp /^namespace {$/;" n file: end:8
anon_f input.cpp /^ void anon_f() { };$/;" f namespace:__anon396601200111 typeref:typename:void end:3
__anon396601200211 input.cpp /^ namespace {$/;" n namespace:__anon396601200111 file: end:7
anon_anon_f input.cpp /^ void anon_anon_f() { };$/;" f namespace:__anon396601200111::__anon396601200211 typeref:typename:void end:6
__anon396601200112 input.cpp /^namespace {$/;" n file: end:8
anon_f input.cpp /^ void anon_f() { };$/;" f namespace:__anon396601200112 typeref:typename:void end:3
__anon396601200212 input.cpp /^ namespace {$/;" n namespace:__anon396601200112 file: end:7
anon_anon_f input.cpp /^ void anon_anon_f() { };$/;" f namespace:__anon396601200112::__anon396601200212 typeref:typename:void end:6
a1 input.cpp /^namespace a1 {$/;" n file: end:24
a1_f input.cpp /^ void a1_f() { }$/;" f namespace:a1 typeref:typename:void end:11
a2 input.cpp /^ namespace a2 {$/;" n namespace:a1 file: end:19
a1_a2_f input.cpp /^ void a1_a2_f() { }$/;" f namespace:a1::a2 typeref:typename:void end:14
a3 input.cpp /^ namespace a3 {$/;" n namespace:a1::a2 file: end:18
a1_a2_a3_f input.cpp /^ void a1_a2_a3_f() { };$/;" f namespace:a1::a2::a3 typeref:typename:void end:17
__anon396601200311 input.cpp /^ namespace {$/;" n namespace:a1 file: end:23
a1_anon_f input.cpp /^ void a1_anon_f() { };$/;" f namespace:a1::__anon396601200311 typeref:typename:void end:22
__anon396601200312 input.cpp /^ namespace {$/;" n namespace:a1 file: end:23
a1_anon_f input.cpp /^ void a1_anon_f() { };$/;" f namespace:a1::__anon396601200312 typeref:typename:void end:22
b1 input.cpp /^namespace b1::b2 {$/;" n file: end:32
b2 input.cpp /^namespace b1::b2 {$/;" n namespace:b1 file: end:32
b1_b2_f input.cpp /^ void b1_b2_f() { };$/;" f namespace:b1::b2 typeref:typename:void end:27
Expand Down
6 changes: 6 additions & 0 deletions Units/parser-qtmoc.r/simple-qt-reftag.d/args.ctags
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
--sort=no
--kinds-C++=+p
--fields=+lK
--extras=+r
--kinds-C++=+{unknown}
--roles-C++.{unknown}=+{ref}
65 changes: 65 additions & 0 deletions Units/parser-qtmoc.r/simple-qt-reftag.d/expected.tags
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
QFrame input.h /^class ColumnPreferencesFrame : public QFrame$/;" unknown language:C++
ColumnPreferencesFrame input.h /^class ColumnPreferencesFrame : public QFrame$/;" class language:C++
Q_OBJECT input.h /^ Q_OBJECT$/;" unknown language:C++ class:ColumnPreferencesFrame
method0 input.h /^ void method0(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slots input.h /^private slots:$/;" unknown language:C++ class:ColumnPreferencesFrame
slot0 input.h /^ void slot0(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slot0 input.h /^ void slot0(void);$/;" slot language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
slot1 input.h /^ void slot1(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slot1 input.h /^ void slot1(void);$/;" slot language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
slots input.h /^public slots:$/;" unknown language:C++ class:ColumnPreferencesFrame
slot2 input.h /^ void slot2(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slot2 input.h /^ void slot2(void);$/;" slot language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
slot3 input.h /^ void slot3(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slot3 input.h /^ void slot3(void);$/;" slot language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
Q_SLOTS input.h /^Q_SLOTS:$/;" unknown language:C++ class:ColumnPreferencesFrame
slot4 input.h /^ void slot4(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slot4 input.h /^ void slot4(void);$/;" slot language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
slot5 input.h /^ void slot5(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slot5 input.h /^ void slot5(void);$/;" slot language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
field0 input.h /^ int field0;$/;" member language:C++ class:ColumnPreferencesFrame typeref:typename:int
method1 input.h /^ virtual void method1(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
Q_SLOTS input.h /^private Q_SLOTS:$/;" unknown language:C++ class:ColumnPreferencesFrame
slot6 input.h /^ void slot6(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slot6 input.h /^ void slot6(void);$/;" slot language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
slot7 input.h /^ void slot7(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slot7 input.h /^ void slot7(void);$/;" slot language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
Q_SLOTS input.h /^public Q_SLOTS:$/;" unknown language:C++ class:ColumnPreferencesFrame
slot8 input.h /^ void slot8(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slot8 input.h /^ void slot8(void);$/;" slot language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
slot9 input.h /^ void slot9(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slot9 input.h /^ void slot9(void);$/;" slot language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
slots input.h /^slots:$/;" unknown language:C++ class:ColumnPreferencesFrame
slot10 input.h /^ void slot10(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slot10 input.h /^ void slot10(void);$/;" slot language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
slot11 input.h /^ void slot11(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
slot11 input.h /^ void slot11(void);$/;" slot language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
field1 input.h /^ int field1;$/;" member language:C++ class:ColumnPreferencesFrame typeref:typename:int
signals input.h /^signals:$/;" unknown language:C++ class:ColumnPreferencesFrame
signal0 input.h /^ void signal0(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
signal0 input.h /^ void signal0(void);$/;" signal language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
signal1 input.h /^ void signal1(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
signal1 input.h /^ void signal1(void);$/;" signal language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
field2 input.h /^ int field2;$/;" member language:C++ class:ColumnPreferencesFrame typeref:typename:int
method2 input.h /^ virtual void method2(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
Q_SIGNALS input.h /^Q_SIGNALS:$/;" unknown language:C++ class:ColumnPreferencesFrame
signal2 input.h /^ void signal2(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
signal2 input.h /^ void signal2(void);$/;" signal language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
signal3 input.h /^ void signal3(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
signal3 input.h /^ void signal3(void);$/;" signal language:QtMoc class:ColumnPreferencesFrame typeref:typename:void
field3 input.h /^ int field3;$/;" member language:C++ class:ColumnPreferencesFrame typeref:typename:int
method3 input.h /^ virtual void method3(void);$/;" prototype language:C++ class:ColumnPreferencesFrame typeref:typename:void
Q_PROPERTY input.h /^ Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged)$/;" unknown language:C++ class:ColumnPreferencesFrame
QString input.h /^ Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged)$/;" unknown language:C++ class:ColumnPreferencesFrame
text input.h /^ Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged)$/;" property language:QtMoc class:ColumnPreferencesFrame typeref:typename:QString
MEMBER input.h /^ Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged)$/;" unknown language:C++ class:ColumnPreferencesFrame
m_text input.h /^ Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged)$/;" unknown language:C++ class:ColumnPreferencesFrame
NOTIFY input.h /^ Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged)$/;" unknown language:C++ class:ColumnPreferencesFrame
textChanged input.h /^ Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged)$/;" unknown language:C++ class:ColumnPreferencesFrame
Q_PROPERTY input.h /^ Q_PROPERTY( bool ShowNonprinting READ showsNonprinting WRITE setShowsNonprinting )$/;" unknown language:C++ class:ColumnPreferencesFrame
ShowNonprinting input.h /^ Q_PROPERTY( bool ShowNonprinting READ showsNonprinting WRITE setShowsNonprinting )$/;" property language:QtMoc class:ColumnPreferencesFrame typeref:typename:bool
READ input.h /^ Q_PROPERTY( bool ShowNonprinting READ showsNonprinting WRITE setShowsNonprinting )$/;" unknown language:C++ class:ColumnPreferencesFrame
showsNonprinting input.h /^ Q_PROPERTY( bool ShowNonprinting READ showsNonprinting WRITE setShowsNonprinting )$/;" unknown language:C++ class:ColumnPreferencesFrame
WRITE input.h /^ Q_PROPERTY( bool ShowNonprinting READ showsNonprinting WRITE setShowsNonprinting )$/;" unknown language:C++ class:ColumnPreferencesFrame
setShowsNonprinting input.h /^ Q_PROPERTY( bool ShowNonprinting READ showsNonprinting WRITE setShowsNonprinting )$/;" unknown language:C++ class:ColumnPreferencesFrame
field4 input.h /^ int field4;$/;" member language:C++ class:ColumnPreferencesFrame typeref:typename:int
65 changes: 65 additions & 0 deletions Units/parser-qtmoc.r/simple-qt-reftag.d/input.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
class ColumnPreferencesFrame : public QFrame
{
Q_OBJECT
void method0(void);

private slots:
void slot0(void);
void slot1(void);

public slots:
void slot2(void);
void slot3(void);

Q_SLOTS:
void slot4(void);
void slot5(void);

private:
int field0;

protected:
virtual void method1(void);

private Q_SLOTS:
void slot6(void);
void slot7(void);

public Q_SLOTS:
void slot8(void);
void slot9(void);

slots:
void slot10(void);
void slot11(void);

private:
int field1;

signals:
void signal0(void);
void signal1(void);

private:
int field2;

protected:
virtual void method2(void);

Q_SIGNALS:
void signal2(void);
void signal3(void);

private:
int field3;

protected:
virtual void method3(void);

Q_PROPERTY(QString text MEMBER m_text NOTIFY textChanged)
Q_PROPERTY( bool ShowNonprinting READ showsNonprinting WRITE setShowsNonprinting )

private:
int field4;

};
1 change: 1 addition & 0 deletions misc/mini-geany.expected
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ x: externvar
z: parameter
L: label
D: macroparam
Y: unknown

Parsing buffer:
foo line: 1 kind: function lang: C
Expand Down
2 changes: 1 addition & 1 deletion parsers/cxx/cxx_parser.c
Original file line number Diff line number Diff line change
Expand Up @@ -873,7 +873,7 @@ bool cxxParserParseEnum(void)
if(pTypeEnd)
{
CXX_DEBUG_ASSERT(pTypeBegin,"Type begin should be also set here");
pTypeName = cxxTagCheckAndSetTypeField(pTypeBegin,pTypeEnd);
pTypeName = cxxTagCheckAndSetTypeField(pTypeBegin,pTypeEnd, false);
}

if(bIsScopedEnum)
Expand Down
9 changes: 6 additions & 3 deletions parsers/cxx/cxx_parser_function.c
Original file line number Diff line number Diff line change
Expand Up @@ -1543,6 +1543,7 @@ int cxxParserEmitFunctionTags(
0
);

cxxTagUseTokensInRangeAsPartOfDefTags(CORK_NIL,pInfo->pIdentifierStart,pInfo->pIdentifierEnd);
cxxTokenChainDestroyRange(pInfo->pIdentifierChain,pInfo->pIdentifierStart,pInfo->pIdentifierEnd);

CXX_DEBUG_ASSERT(
Expand Down Expand Up @@ -1653,7 +1654,7 @@ int cxxParserEmitFunctionTags(
CXXToken * pTokenBeforeParenthesis = pInfo->pParenthesis->pPrev;
cxxTokenChainTake(pInfo->pParenthesisContainerChain,pInfo->pParenthesis);

pTypeName = cxxTagCheckAndSetTypeField(pInfo->pTypeStart,pInfo->pTypeEnd);
pTypeName = cxxTagCheckAndSetTypeField(pInfo->pTypeStart,pInfo->pTypeEnd, false);

cxxTokenChainInsertAfter(
pInfo->pParenthesisContainerChain,
Expand All @@ -1664,7 +1665,7 @@ int cxxParserEmitFunctionTags(
pTypeName = NULL;
}
} else {
pTypeName = cxxTagCheckAndSetTypeField(pInfo->pTypeStart,pInfo->pTypeEnd);
pTypeName = cxxTagCheckAndSetTypeField(pInfo->pTypeStart,pInfo->pTypeEnd, false);
}
} else {
pTypeName = NULL;
Expand Down Expand Up @@ -1694,6 +1695,7 @@ int cxxParserEmitFunctionTags(
pInfo->pTemplateSpecializationEnd,
0
);
/* TODO */

// Tricky. We append it to the specialization chain which will
// be then used by cxxTagHandleTemplateFileds()
Expand Down Expand Up @@ -1919,7 +1921,8 @@ void cxxParserEmitFunctionParameterTags(CXXTypedVariableSet * pInfo)

pTypeName = cxxTagCheckAndSetTypeField(
pTypeStart,
pTypeEnd
pTypeEnd,
false
);
} else {
// The declaration contains only the identifier!
Expand Down
2 changes: 1 addition & 1 deletion parsers/cxx/cxx_parser_lambda.c
Original file line number Diff line number Diff line change
Expand Up @@ -239,7 +239,7 @@ bool cxxParserHandleLambda(CXXToken * pParenthesis)
markTagExtraBit (tag, XTAG_ANONYMOUS);

if(pTypeStart)
pTypeName = cxxTagCheckAndSetTypeField(pTypeStart,pTypeEnd);
pTypeName = cxxTagCheckAndSetTypeField(pTypeStart,pTypeEnd, false);
else
pTypeName = NULL;

Expand Down
1 change: 1 addition & 0 deletions parsers/cxx/cxx_parser_namespace.c
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,7 @@ bool cxxParserParseNamespace(void)
pLastIdentifier,
CXXTokenChainExtractRangeNoTrailingSpaces
);
/* TODO */

cxxTagSetField(
CXXTagCPPFieldAliasedName,
Expand Down
3 changes: 2 additions & 1 deletion parsers/cxx/cxx_parser_template.c
Original file line number Diff line number Diff line change
Expand Up @@ -825,7 +825,8 @@ void cxxParserEmitTemplateParameterTags(void)

CXXToken * pTypeToken = cxxTagCheckAndSetTypeField(
g_cxx.oTemplateParameters.aTypeStarts[i],
g_cxx.oTemplateParameters.aTypeEnds[i]
g_cxx.oTemplateParameters.aTypeEnds[i],
false
);

cxxTagCommit(NULL);
Expand Down
Loading