handle even more include in enum cases
The solution in d3ed7dac8aa2f4ede0c409254b9dd44842086be0 was needlessly complicated, and broke a valid use case. The issue of no identifier being available to parse after the include has been processed can instead be solved by moving the test for the closing brace after the include processing. Origin: upstream, https://code.qt.io/cgit/qt/qtbase.git/commit/?id=87973325f1b99f2b Last-Update: 2022-04-07 Gbp-Pq: Name moc_handle_include.diff
This commit is contained in:
parent
ba37f387b4
commit
db597cc481
|
@ -305,10 +305,9 @@ bool Moc::parseEnum(EnumDef *def)
|
||||||
return IncludeState::NoInclude;
|
return IncludeState::NoInclude;
|
||||||
};
|
};
|
||||||
do {
|
do {
|
||||||
|
handleInclude();
|
||||||
if (lookup() == RBRACE) // accept trailing comma
|
if (lookup() == RBRACE) // accept trailing comma
|
||||||
break;
|
break;
|
||||||
if ( handleInclude() == IncludeState::IncludeEnd)
|
|
||||||
continue;
|
|
||||||
next(IDENTIFIER);
|
next(IDENTIFIER);
|
||||||
def->values += lexem();
|
def->values += lexem();
|
||||||
handleInclude();
|
handleInclude();
|
||||||
|
|
|
@ -34,6 +34,11 @@ class Foo : public QObject {
|
||||||
enum en {
|
enum en {
|
||||||
#include <enum_inc.h>
|
#include <enum_inc.h>
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum class en2 {
|
||||||
|
#include <enum_inc.h>
|
||||||
|
reference = 42
|
||||||
|
};
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue