- fixes #371 : Don't show completion suggestion for members of variable which type name has namespace alias;

This commit is contained in:
Roy Qu 2024-04-06 10:31:08 +08:00
parent 2cf8f2dcf5
commit f029de3048
2 changed files with 4 additions and 8 deletions

View File

@ -123,6 +123,7 @@ Red Panda C++ Version 2.27
- fix: Don't show function prototype tip for function name that contains more than one namespace; - fix: Don't show function prototype tip for function name that contains more than one namespace;
- fix: Compiler set options "Check for stack smashing attacks (-fstack-protector)" was not correctly applied when compiling. - fix: Compiler set options "Check for stack smashing attacks (-fstack-protector)" was not correctly applied when compiling.
- fix: can't jump to definition/declaration for symbols in using alias statement like "using ::printf". - fix: can't jump to definition/declaration for symbols in using alias statement like "using ::printf".
- fix: Don't show completion suggestion for members of variable which type name has namespace alias;
Red Panda C++ Version 2.26 Red Panda C++ Version 2.26
- enhancement: Code suggestion for embedded std::vectors. - enhancement: Code suggestion for embedded std::vectors.

View File

@ -154,13 +154,7 @@ QList<PStatement> CppParser::getListOfFunctions(const QString &fileName, const Q
return result; return result;
QStringList expression = splitExpression(phrase); QStringList expression = splitExpression(phrase);
PStatement scopeStatement = doFindScopeStatement(fileName,line); PStatement statement = doFindStatementOf(fileName, expression, line);
int pos = 0;
PEvalStatement evalStatement = doEvalExpression(fileName, expression, pos, scopeStatement, PEvalStatement(), true, true);
if (!evalStatement)
return result;
PStatement statement = evalStatement->baseStatement;
if (!statement) if (!statement)
return result; return result;
if (statement->kind == StatementKind::Preprocessor) { if (statement->kind == StatementKind::Preprocessor) {
@ -5814,7 +5808,8 @@ PStatement CppParser::doParseEvalTypeInfo(
} }
position--; position--;
} }
typeStatement = doFindStatementOf(fileName,baseType,scope); QStringList expression = splitExpression(baseType);
typeStatement = doFindStatementOf(fileName,expression,scope);
PStatement effectiveTypeStatement = typeStatement; PStatement effectiveTypeStatement = typeStatement;
int level=0; int level=0;
while (effectiveTypeStatement && (effectiveTypeStatement->kind == StatementKind::Typedef while (effectiveTypeStatement && (effectiveTypeStatement->kind == StatementKind::Typedef