From d6eaa6a7fd5f5579c9f348c943a5e5754ed8ba16 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98ystein=20Krog?= Date: Tue, 25 Feb 2014 21:43:57 +0100 Subject: [PATCH] Reorder code a bit such that new/old parser has same method order, easier to diff/compare. --- src/Parser/Parser.cpp | 90 +++++++++++++++++++++---------------------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/src/Parser/Parser.cpp b/src/Parser/Parser.cpp index c6d59003..677417ce 100644 --- a/src/Parser/Parser.cpp +++ b/src/Parser/Parser.cpp @@ -533,6 +533,51 @@ void Parser::WalkVTable(clang::CXXRecordDecl* RD, CppSharp::AST::Class^ C) } } +CppSharp::AST::Class^ Parser::WalkRecordCXX(clang::CXXRecordDecl* Record) +{ + using namespace clang; + using namespace clix; + + if (Record->isInjectedClassName()) + return nullptr; + + auto NS = GetNamespace(Record); + assert(NS && "Expected a valid namespace"); + + bool isCompleteDefinition = Record->isCompleteDefinition(); + + CppSharp::AST::Class^ RC = nullptr; + + auto Name = marshalString(GetTagDeclName(Record)); + auto HasEmptyName = Record->getDeclName().isEmpty(); + + if (HasEmptyName) + { + if (auto AR = NS->FindAnonymous((uint64_t)Record)) + RC = safe_cast(AR); + } + else + { + RC = NS->FindClass(Name, isCompleteDefinition, /*Create=*/false); + } + + if (RC) + return RC; + + RC = NS->FindClass(Name, isCompleteDefinition, /*Create=*/true); + HandleDeclaration(Record, RC); + + if (HasEmptyName) + NS->Anonymous[(uint64_t)Record] = RC; + + if (!isCompleteDefinition) + return RC; + + WalkRecordCXX(Record, RC); + + return RC; +} + void Parser::WalkRecordCXX(clang::CXXRecordDecl* Record, CppSharp::AST::Class^ RC) { @@ -646,51 +691,6 @@ void Parser::WalkRecordCXX(clang::CXXRecordDecl* Record, WalkVTable(Record, RC); } -CppSharp::AST::Class^ Parser::WalkRecordCXX(clang::CXXRecordDecl* Record) -{ - using namespace clang; - using namespace clix; - - if (Record->isInjectedClassName()) - return nullptr; - - auto NS = GetNamespace(Record); - assert(NS && "Expected a valid namespace"); - - bool isCompleteDefinition = Record->isCompleteDefinition(); - - CppSharp::AST::Class^ RC = nullptr; - - auto Name = marshalString(GetTagDeclName(Record)); - auto HasEmptyName = Record->getDeclName().isEmpty(); - - if (HasEmptyName) - { - if (auto AR = NS->FindAnonymous((uint64_t)Record)) - RC = safe_cast(AR); - } - else - { - RC = NS->FindClass(Name, isCompleteDefinition, /*Create=*/false); - } - - if (RC) - return RC; - - RC = NS->FindClass(Name, isCompleteDefinition, /*Create=*/true); - HandleDeclaration(Record, RC); - - if (HasEmptyName) - NS->Anonymous[(uint64_t)Record] = RC; - - if (!isCompleteDefinition) - return RC; - - WalkRecordCXX(Record, RC); - - return RC; -} - //-----------------------------------// static CppSharp::AST::TemplateSpecializationKind