Browse Source

Unify the handling of comments in WalkDeclaration.

pull/1/head
triton 12 years ago
parent
commit
78b3732b19
  1. 32
      src/Parser/Parser.cpp

32
src/Parser/Parser.cpp

@ -1523,7 +1523,7 @@ CppSharp::Declaration^ Parser::WalkDeclaration(clang::Decl* D,
StringRef AnnotationText = Annotation->getAnnotation(); StringRef AnnotationText = Annotation->getAnnotation();
} }
CppSharp::Declaration^ Decl; CppSharp::Declaration^ Decl = nullptr;
auto Kind = D->getKind(); auto Kind = D->getKind();
switch(D->getKind()) switch(D->getKind())
@ -1533,7 +1533,6 @@ CppSharp::Declaration^ Parser::WalkDeclaration(clang::Decl* D,
CXXRecordDecl* RD = cast<CXXRecordDecl>(D); CXXRecordDecl* RD = cast<CXXRecordDecl>(D);
auto Class = WalkRecordCXX(RD); auto Class = WalkRecordCXX(RD);
HandleComments(RD, Class);
// We store a definition order index into the declarations. // We store a definition order index into the declarations.
// This is needed because declarations are added to their contexts as // This is needed because declarations are added to their contexts as
@ -1547,7 +1546,6 @@ CppSharp::Declaration^ Parser::WalkDeclaration(clang::Decl* D,
} }
Decl = Class; Decl = Class;
break; break;
} }
case Decl::ClassTemplate: case Decl::ClassTemplate:
@ -1560,23 +1558,21 @@ CppSharp::Declaration^ Parser::WalkDeclaration(clang::Decl* D,
NS->Templates->Add(Template); NS->Templates->Add(Template);
Decl = Template; Decl = Template;
break; break;
} }
case Decl::ClassTemplateSpecialization: case Decl::ClassTemplateSpecialization:
{ {
auto TS = cast<ClassTemplateSpecializationDecl>(D); auto TS = cast<ClassTemplateSpecializationDecl>(D);
auto CT = gcnew CppSharp::ClassTemplateSpecialization(); auto CT = gcnew CppSharp::ClassTemplateSpecialization();
Decl = CT; Decl = CT;
break; break;
} }
case Decl::ClassTemplatePartialSpecialization: case Decl::ClassTemplatePartialSpecialization:
{ {
auto TS = cast<ClassTemplatePartialSpecializationDecl>(D); auto TS = cast<ClassTemplatePartialSpecializationDecl>(D);
auto CT = gcnew CppSharp::ClassTemplatePartialSpecialization(); auto CT = gcnew CppSharp::ClassTemplatePartialSpecialization();
Decl = CT; Decl = CT;
break; break;
} }
@ -1590,18 +1586,12 @@ CppSharp::Declaration^ Parser::WalkDeclaration(clang::Decl* D,
NS->Templates->Add(Template); NS->Templates->Add(Template);
Decl = Template; Decl = Template;
break; break;
} }
case Decl::Enum: case Decl::Enum:
{ {
EnumDecl* ED = cast<EnumDecl>(D); EnumDecl* ED = cast<EnumDecl>(D);
Decl = WalkEnum(ED);
auto E = WalkEnum(ED);
HandleComments(ED, E);
Decl = E;
break; break;
} }
case Decl::Function: case Decl::Function:
@ -1614,11 +1604,7 @@ CppSharp::Declaration^ Parser::WalkDeclaration(clang::Decl* D,
if (FD->getBuiltinID() != 0) if (FD->getBuiltinID() != 0)
break; break;
auto F = WalkFunction(FD); Decl = WalkFunction(FD);
HandleComments(FD, F);
Decl = F;
break; break;
} }
case Decl::LinkageSpec: case Decl::LinkageSpec:
@ -1649,7 +1635,6 @@ CppSharp::Declaration^ Parser::WalkDeclaration(clang::Decl* D,
WalkType(TD->getUnderlyingType(), &TTL)); WalkType(TD->getUnderlyingType(), &TTL));
Decl = Typedef; Decl = Typedef;
break; break;
} }
case Decl::Namespace: case Decl::Namespace:
@ -1667,12 +1652,7 @@ CppSharp::Declaration^ Parser::WalkDeclaration(clang::Decl* D,
case Decl::Var: case Decl::Var:
{ {
auto VD = cast<VarDecl>(D); auto VD = cast<VarDecl>(D);
Decl = WalkVariable(VD);
auto V = WalkVariable(VD);
HandleComments(VD, V);
Decl = V;
break; break;
} }
case Decl::Empty: case Decl::Empty:
@ -1709,7 +1689,7 @@ CppSharp::Declaration^ Parser::WalkDeclaration(clang::Decl* D,
if (Decl) if (Decl)
{ {
HandlePreprocessedEntities(D, Decl); HandleComments(D, Decl);
if (const ValueDecl *VD = dyn_cast_or_null<ValueDecl>(D)) if (const ValueDecl *VD = dyn_cast_or_null<ValueDecl>(D))
Decl->IsDependent = VD->getType()->isDependentType(); Decl->IsDependent = VD->getType()->isDependentType();

Loading…
Cancel
Save