forked from qt-creator/qt-creator
Resolve the conditional and new-expressions
This commit is contained in:
@@ -286,9 +286,14 @@ bool ResolveExpression::visit(ConditionAST *)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ResolveExpression::visit(ConditionalExpressionAST *)
|
||||
bool ResolveExpression::visit(ConditionalExpressionAST *ast)
|
||||
{
|
||||
// nothing to do.
|
||||
if (ast->left_expression)
|
||||
accept(ast->left_expression);
|
||||
|
||||
else if (ast->right_expression)
|
||||
accept(ast->right_expression);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -300,7 +305,8 @@ bool ResolveExpression::visit(CppCastExpressionAST *ast)
|
||||
|
||||
bool ResolveExpression::visit(DeleteExpressionAST *)
|
||||
{
|
||||
// nothing to do.
|
||||
FullySpecifiedType ty(control()->voidType());
|
||||
addResult(ty);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -310,8 +316,15 @@ bool ResolveExpression::visit(ArrayInitializerAST *)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ResolveExpression::visit(NewExpressionAST *)
|
||||
bool ResolveExpression::visit(NewExpressionAST *ast)
|
||||
{
|
||||
if (ast->new_type_id) {
|
||||
Scope *scope = _context.expressionDocument()->globalSymbols();
|
||||
FullySpecifiedType ty = sem.check(ast->new_type_id->type_specifier, scope);
|
||||
ty = sem.check(ast->new_type_id->ptr_operators, ty, scope);
|
||||
FullySpecifiedType ptrTy(control()->pointerType(ty));
|
||||
addResult(ptrTy);
|
||||
}
|
||||
// nothing to do.
|
||||
return false;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user