- fix: crash when eval statements like "fsm::stack fsm;"
This commit is contained in:
parent
390c403503
commit
312d282501
2
NEWS.md
2
NEWS.md
|
@ -10,6 +10,8 @@ Red Panda C++ Version 1.0.4
|
||||||
- enhancement: prefer local headers over system headers when complete #include header path
|
- enhancement: prefer local headers over system headers when complete #include header path
|
||||||
- fix: tab/shift+tab not correctly handled in options dialog's code template page
|
- fix: tab/shift+tab not correctly handled in options dialog's code template page
|
||||||
- enhancement: batch set cases ( in problem case table's context menu )
|
- enhancement: batch set cases ( in problem case table's context menu )
|
||||||
|
- enhancement: add Portugese translation
|
||||||
|
- fix: crash when eval statements like "fsm::stack fsm;"
|
||||||
|
|
||||||
Red Panda C++ Version 1.0.3
|
Red Panda C++ Version 1.0.3
|
||||||
- fix: when oj problem grabbed by competitive companion received,
|
- fix: when oj problem grabbed by competitive companion received,
|
||||||
|
|
|
@ -350,6 +350,10 @@ PStatement CppParser::findStatementOf(const QString &fileName,
|
||||||
QString typeName;
|
QString typeName;
|
||||||
PStatement typeStatement;
|
PStatement typeStatement;
|
||||||
while (!memberName.isEmpty()) {
|
while (!memberName.isEmpty()) {
|
||||||
|
if (statement->kind!=StatementKind::skClass
|
||||||
|
&& operatorToken == "::") {
|
||||||
|
return PStatement();
|
||||||
|
}
|
||||||
if (statement->kind == StatementKind::skVariable
|
if (statement->kind == StatementKind::skVariable
|
||||||
|| statement->kind == StatementKind::skParameter
|
|| statement->kind == StatementKind::skParameter
|
||||||
|| statement->kind == StatementKind::skFunction) {
|
|| statement->kind == StatementKind::skFunction) {
|
||||||
|
@ -544,6 +548,7 @@ PStatement CppParser::findTypeDefinitionOf(const QString &fileName, const QStrin
|
||||||
|
|
||||||
if (mParsing)
|
if (mParsing)
|
||||||
return PStatement();
|
return PStatement();
|
||||||
|
|
||||||
// Remove pointer stuff from type
|
// Remove pointer stuff from type
|
||||||
QString s = aType; // 'Type' is a keyword
|
QString s = aType; // 'Type' is a keyword
|
||||||
int position = s.length()-1;
|
int position = s.length()-1;
|
||||||
|
@ -4369,7 +4374,8 @@ void CppParser::scanMethodArgs(const PStatement& functionStatement, const QStrin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString CppParser::splitPhrase(const QString &phrase, QString &sClazz, QString &sMember, QString &sOperator)
|
QString CppParser::splitPhrase(const QString &phrase, QString &sClazz,
|
||||||
|
QString &sOperator, QString &sMember)
|
||||||
{
|
{
|
||||||
sClazz="";
|
sClazz="";
|
||||||
sMember="";
|
sMember="";
|
||||||
|
|
|
@ -404,8 +404,8 @@ private:
|
||||||
void scanMethodArgs(
|
void scanMethodArgs(
|
||||||
const PStatement& functionStatement,
|
const PStatement& functionStatement,
|
||||||
const QString& argStr);
|
const QString& argStr);
|
||||||
QString splitPhrase(const QString& phrase, QString& sClazz, QString &sMember,
|
QString splitPhrase(const QString& phrase, QString& sClazz,
|
||||||
QString& sOperator);
|
QString& sOperator, QString &sMember);
|
||||||
|
|
||||||
QString removeArgNames(const QString& args);
|
QString removeArgNames(const QString& args);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue