void ASTExporter::VisitObjCIvarDecl()

in facebook-clang-plugins/libtooling/ASTExporter.h [2476:2505]


void ASTExporter<ATDWriter>::VisitObjCIvarDecl(const ObjCIvarDecl *D) {
  VisitFieldDecl(D);

  bool IsSynthesize = D->getSynthesize();
  ObjCIvarDecl::AccessControl AC = D->getAccessControl();
  bool ShouldEmitAC = AC != ObjCIvarDecl::None;
  ObjectScope Scope(OF, IsSynthesize + ShouldEmitAC); // not covered by tests

  OF.emitFlag("is_synthesize", IsSynthesize);
  if (ShouldEmitAC) {
    OF.emitTag("access_control");
    switch (AC) {
    case ObjCIvarDecl::Private:
      OF.emitSimpleVariant("Private");
      break;
    case ObjCIvarDecl::Protected:
      OF.emitSimpleVariant("Protected");
      break;
    case ObjCIvarDecl::Public:
      OF.emitSimpleVariant("Public");
      break;
    case ObjCIvarDecl::Package:
      OF.emitSimpleVariant("Package");
      break;
    case ObjCIvarDecl::None:
      llvm_unreachable("unreachable");
      break;
    }
  }
}