forked from qt-creator/qt-creator
Fix to selector parameter position.
This commit is contained in:
@@ -666,22 +666,22 @@ bool CheckDeclaration::visit(ObjCMethodDeclarationAST *ast)
|
||||
return false;
|
||||
|
||||
FullySpecifiedType ty = semantic()->check(ast->method_prototype, _scope);
|
||||
ObjCMethod *methodType = ty.type()->asObjCMethodType();
|
||||
if (!methodType)
|
||||
ObjCMethod *methodTy = ty.type()->asObjCMethodType();
|
||||
if (!methodTy)
|
||||
return false;
|
||||
|
||||
Symbol *symbol;
|
||||
if (ast->function_body) {
|
||||
if (!semantic()->skipFunctionBodies()) {
|
||||
semantic()->check(ast->function_body, methodType->members());
|
||||
semantic()->check(ast->function_body, methodTy->members());
|
||||
}
|
||||
|
||||
symbol = methodType;
|
||||
symbol = methodTy;
|
||||
} else {
|
||||
Declaration *decl = control()->newDeclaration(ast->firstToken(), methodType->name());
|
||||
decl->setType(methodType);
|
||||
Declaration *decl = control()->newDeclaration(ast->firstToken(), methodTy->name());
|
||||
decl->setType(methodTy);
|
||||
symbol = decl;
|
||||
symbol->setStorage(methodType->storage());
|
||||
symbol->setStorage(methodTy->storage());
|
||||
}
|
||||
|
||||
symbol->setStartOffset(tokenAt(ast->firstToken()).offset);
|
||||
|
||||
@@ -97,10 +97,11 @@ FullySpecifiedType CheckDeclarator::check(PtrOperatorListAST *ptrOperators,
|
||||
FullySpecifiedType CheckDeclarator::check(ObjCMethodPrototypeAST *methodPrototype,
|
||||
Scope *scope)
|
||||
{
|
||||
FullySpecifiedType previousType = switchFullySpecifiedType(FullySpecifiedType());
|
||||
Scope *previousScope = switchScope(scope);
|
||||
accept(methodPrototype);
|
||||
(void) switchScope(previousScope);
|
||||
return _fullySpecifiedType;
|
||||
return switchFullySpecifiedType(previousType);
|
||||
}
|
||||
|
||||
DeclaratorAST *CheckDeclarator::switchDeclarator(DeclaratorAST *declarator)
|
||||
|
||||
@@ -423,7 +423,7 @@ bool CheckName::visit(ObjCMessageArgumentDeclarationAST *ast)
|
||||
_name = control()->nameId(id);
|
||||
ast->name = _name;
|
||||
|
||||
Argument *arg = control()->newArgument(ast->firstToken(), _name);
|
||||
Argument *arg = control()->newArgument(ast->param_name_token, _name);
|
||||
ast->argument = arg;
|
||||
arg->setType(type);
|
||||
arg->setInitializer(0);
|
||||
|
||||
Reference in New Issue
Block a user