summaryrefslogtreecommitdiff
path: root/src/shared/cplusplus/Parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/cplusplus/Parser.cpp')
-rw-r--r--src/shared/cplusplus/Parser.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp
index ea8b0f98e8..3ed4839928 100644
--- a/src/shared/cplusplus/Parser.cpp
+++ b/src/shared/cplusplus/Parser.cpp
@@ -4347,14 +4347,16 @@ bool Parser::parseObjCMethodDefinition(DeclarationAST *&node)
ObjCMethodDeclarationAST *ast = new (_pool) ObjCMethodDeclarationAST;
ast->method_prototype = method_prototype;
+ // Objective-C allows you to write:
+ // - (void) foo; { body; }
+ // so a method is a forward declaration when it doesn't have a _body_.
+ // However, we still need to read the semicolon.
if (LA() == T_SEMICOLON) {
- // method declaration:
ast->semicolon_token = consumeToken();
- } else {
- // method definition:
- parseFunctionBody(ast->function_body);
}
+ parseFunctionBody(ast->function_body);
+
node = ast;
return true;
}