Skip to content

Commit c8531c1

Browse files
committed
tidy up anyblocks
1 parent e65ac0f commit c8531c1

File tree

1 file changed

+56
-81
lines changed

1 file changed

+56
-81
lines changed

source/api/AST/AnyBlock.hpp

Lines changed: 56 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -400,25 +400,16 @@ class TypeBlock
400400
{
401401
protected:
402402
BitcodeReader& br_;
403-
TypeInfo* p_;
403+
TypeInfo& I_;
404404

405405
public:
406406
FieldId F;
407-
TypeInfo I;
408407

409408
TypeBlock(
410-
TypeInfo& I_,
409+
TypeInfo& I,
411410
BitcodeReader& br) noexcept
412411
: br_(br)
413-
, p_(&I_)
414-
{
415-
}
416-
417-
explicit
418-
TypeBlock(
419-
BitcodeReader& br) noexcept
420-
: br_(br)
421-
, p_(&I)
412+
, I_(I)
422413
{
423414
}
424415

@@ -434,7 +425,7 @@ class TypeBlock
434425
if(auto Err = br_.readBlock(B, ID))
435426
return Err;
436427
F = B.F;
437-
p_->Type = std::move(B.I);
428+
I_.Type = std::move(B.I);
438429
return llvm::Error::success();
439430
}
440431
default:
@@ -450,15 +441,16 @@ class FieldTypeBlock
450441
{
451442
protected:
452443
BitcodeReader& br_;
444+
FieldTypeInfo& I_;
453445

454446
public:
455447
FieldId F;
456-
FieldTypeInfo I;
457448

458-
explicit
459449
FieldTypeBlock(
450+
FieldTypeInfo& I,
460451
BitcodeReader& br) noexcept
461452
: br_(br)
453+
, I_(I)
462454
{
463455
}
464456

@@ -471,9 +463,9 @@ class FieldTypeBlock
471463
switch(ID)
472464
{
473465
case FIELD_TYPE_NAME:
474-
return decodeRecord(R, I.Name, Blob);
466+
return decodeRecord(R, I_.Name, Blob);
475467
case FIELD_DEFAULT_VALUE:
476-
return decodeRecord(R, I.DefaultValue, Blob);
468+
return decodeRecord(R, I_.DefaultValue, Blob);
477469
default:
478470
return AnyBlock::parseRecord(R, ID, Blob);
479471
}
@@ -491,7 +483,7 @@ class FieldTypeBlock
491483
if(auto Err = br_.readBlock(B, ID))
492484
return Err;
493485
F = B.F;
494-
I.Type = std::move(B.I);
486+
I_.Type = std::move(B.I);
495487
return llvm::Error::success();
496488
}
497489
default:
@@ -505,16 +497,15 @@ class FieldTypeBlock
505497
class MemberTypeBlock
506498
: public BitcodeReader::AnyBlock
507499
{
508-
protected:
509500
BitcodeReader& br_;
501+
MemberTypeInfo& I_;
510502

511503
public:
512-
MemberTypeInfo I;
513-
514-
explicit
515504
MemberTypeBlock(
505+
MemberTypeInfo& I,
516506
BitcodeReader& br) noexcept
517507
: br_(br)
508+
, I_(I)
518509
{
519510
}
520511

@@ -527,9 +518,9 @@ class MemberTypeBlock
527518
switch(ID)
528519
{
529520
case MEMBER_TYPE_NAME:
530-
return decodeRecord(R, I.Name, Blob);
521+
return decodeRecord(R, I_.Name, Blob);
531522
case MEMBER_TYPE_ACCESS:
532-
return decodeRecord(R, I.Access, Blob);
523+
return decodeRecord(R, I_.Access, Blob);
533524
default:
534525
return AnyBlock::parseRecord(R, ID, Blob);
535526
}
@@ -546,13 +537,13 @@ class MemberTypeBlock
546537
ReferenceBlock B(br_);
547538
if(auto Err = br_.readBlock(B, ID))
548539
return Err;
549-
I.Type = std::move(B.I);
540+
I_.Type = std::move(B.I);
550541
return llvm::Error::success();
551542
}
552543
case BI_JAVADOC_BLOCK_ID:
553544
{
554-
I.javadoc.emplace();
555-
JavadocBlock B(*I.javadoc, br_);
545+
I_.javadoc.emplace();
546+
JavadocBlock B(*I_.javadoc, br_);
556547
if(auto Err = br_.readBlock(B, ID))
557548
return Err;
558549
return llvm::Error::success();
@@ -569,14 +560,15 @@ class BaseRecordBlock
569560
: public BitcodeReader::AnyBlock
570561
{
571562
BitcodeReader& br_;
563+
BaseRecordInfo& I_;
572564

573565
public:
574-
BaseRecordInfo I;
575-
576566
explicit
577567
BaseRecordBlock(
568+
BaseRecordInfo& I,
578569
BitcodeReader& br) noexcept
579570
: br_(br)
571+
, I_(I)
580572
{
581573
}
582574

@@ -589,13 +581,13 @@ class BaseRecordBlock
589581
switch(ID)
590582
{
591583
case BASE_RECORD_TAG_TYPE:
592-
return decodeRecord(R, I.TagType, Blob);
584+
return decodeRecord(R, I_.TagType, Blob);
593585
case BASE_RECORD_IS_VIRTUAL:
594-
return decodeRecord(R, I.IsVirtual, Blob);
586+
return decodeRecord(R, I_.IsVirtual, Blob);
595587
case BASE_RECORD_ACCESS:
596-
return decodeRecord(R, I.Access, Blob);
588+
return decodeRecord(R, I_.Access, Blob);
597589
case BASE_RECORD_IS_PARENT:
598-
return decodeRecord(R, I.IsParent, Blob);
590+
return decodeRecord(R, I_.IsParent, Blob);
599591
default:
600592
return AnyBlock::parseRecord(R, ID, Blob);
601593
}
@@ -609,18 +601,15 @@ class BaseRecordBlock
609601
{
610602
case BI_INFO_PART_ID:
611603
{
612-
InfoPartBlock B(I, br_);
604+
InfoPartBlock B(I_, br_);
613605
if(auto Err = br_.readBlock(B, ID))
614606
return Err;
615607
return llvm::Error::success();
616608
}
617609
case BI_MEMBER_TYPE_BLOCK_ID:
618610
{
619-
MemberTypeBlock B(br_);
620-
if(auto Err = br_.readBlock(B, ID))
621-
return Err;
622-
I.Members.emplace_back(std::move(B.I));
623-
return llvm::Error::success();
611+
MemberTypeBlock B(I_.Members.emplace_back(), br_);
612+
return br_.readBlock(B, ID);
624613
}
625614
default:
626615
return AnyBlock::readSubBlock(ID);
@@ -634,15 +623,16 @@ class TemplateSpecializationBlock
634623
: public BitcodeReader::AnyBlock
635624
{
636625
BitcodeReader& br_;
626+
llvm::Optional<TemplateSpecializationInfo>& I_;
637627

638628
public:
639-
TemplateSpecializationInfo I;
640-
641-
explicit
642629
TemplateSpecializationBlock(
643-
BitcodeReader& br) noexcept
630+
llvm::Optional<TemplateSpecializationInfo>& I,
631+
BitcodeReader& br)
644632
: br_(br)
633+
, I_(I)
645634
{
635+
I_.emplace();
646636
}
647637

648638
llvm::Error
@@ -652,9 +642,9 @@ class TemplateSpecializationBlock
652642
switch(ID)
653643
{
654644
case TEMPLATE_SPECIALIZATION_OF:
655-
return decodeRecord(R, I.SpecializationOf, Blob);
645+
return decodeRecord(R, I_->SpecializationOf, Blob);
656646
case TEMPLATE_PARAM_CONTENTS:
657-
return decodeRecord(R, I.Params.back().Contents, Blob);
647+
return decodeRecord(R, I_->Params.back().Contents, Blob);
658648
default:
659649
return AnyBlock::parseRecord(R, ID, Blob);
660650
}
@@ -668,7 +658,7 @@ class TemplateSpecializationBlock
668658
{
669659
case BI_TEMPLATE_PARAM_BLOCK_ID:
670660
{
671-
I.Params.emplace_back();
661+
I_->Params.emplace_back();
672662
if(auto Err = br_.readBlock(*this, ID))
673663
return Err;
674664
return llvm::Error::success();
@@ -685,15 +675,17 @@ class TemplateBlock
685675
: public BitcodeReader::AnyBlock
686676
{
687677
BitcodeReader& br_;
678+
llvm::Optional<TemplateInfo> I_;
688679

689680
public:
690-
TemplateInfo I;
691-
692681
explicit
693682
TemplateBlock(
683+
llvm::Optional<TemplateInfo>& I,
694684
BitcodeReader& br) noexcept
695685
: br_(br)
686+
, I_(I)
696687
{
688+
I_.emplace();
697689
}
698690

699691
llvm::Error
@@ -703,7 +695,7 @@ class TemplateBlock
703695
switch(ID)
704696
{
705697
case TEMPLATE_PARAM_CONTENTS:
706-
return decodeRecord(R, I.Params.back().Contents, Blob);
698+
return decodeRecord(R, I_->Params.back().Contents, Blob);
707699
default:
708700
return AnyBlock::parseRecord(R, ID, Blob);
709701
}
@@ -717,18 +709,15 @@ class TemplateBlock
717709
{
718710
case BI_TEMPLATE_PARAM_BLOCK_ID:
719711
{
720-
I.Params.emplace_back();
712+
I_->Params.emplace_back();
721713
if(auto Err = br_.readBlock(*this, ID))
722714
return Err;
723715
return llvm::Error::success();
724716
}
725717
case BI_TEMPLATE_SPECIALIZATION_BLOCK_ID:
726718
{
727-
TemplateSpecializationBlock B(br_);
728-
if(auto Err = br_.readBlock(B, ID))
729-
return Err;
730-
I.Specialization.emplace(std::move(B.I));
731-
return llvm::Error::success();
719+
TemplateSpecializationBlock B(I_->Specialization, br_);
720+
return br_.readBlock(B, ID);
732721
}
733722
default:
734723
return AnyBlock::readSubBlock(ID);
@@ -748,6 +737,7 @@ class TopLevelBlock
748737
public:
749738
std::unique_ptr<T> I;
750739

740+
explicit
751741
TopLevelBlock(
752742
BitcodeReader& br)
753743
: br_(br)
@@ -881,11 +871,8 @@ class RecordBlock
881871
{
882872
case BI_MEMBER_TYPE_BLOCK_ID:
883873
{
884-
MemberTypeBlock B(br_);
885-
if(auto Err = br_.readBlock(B, ID))
886-
return Err;
887-
I->Members.emplace_back(std::move(B.I));
888-
return llvm::Error::success();
874+
MemberTypeBlock B(I->Members.emplace_back(), br_);
875+
return br_.readBlock(B, ID);
889876
}
890877
case BI_REFERENCE_BLOCK_ID:
891878
{
@@ -907,19 +894,13 @@ class RecordBlock
907894
}
908895
case BI_BASE_RECORD_BLOCK_ID:
909896
{
910-
BaseRecordBlock B(br_);
911-
if(auto Err = br_.readBlock(B, ID))
912-
return Err;
913-
I->Bases.emplace_back(std::move(B.I));
914-
return llvm::Error::success();
897+
BaseRecordBlock B(I->Bases.emplace_back(), br_);
898+
return br_.readBlock(B, ID);
915899
}
916900
case BI_TEMPLATE_BLOCK_ID:
917901
{
918-
TemplateBlock B(br_);
919-
if(auto Err = br_.readBlock(B, ID))
920-
return Err;
921-
I->Template.emplace(std::move(B.I));
922-
return llvm::Error::success();
902+
TemplateBlock B(I->Template, br_);
903+
return br_.readBlock(B, ID);
923904
}
924905
default:
925906
break;
@@ -981,13 +962,12 @@ class FunctionBlock
981962
}
982963
case BI_TYPE_BLOCK_ID:
983964
{
984-
TypeBlock B(br_);
965+
TypeBlock B(I->ReturnType, br_);
985966
if(auto Err = br_.readBlock(B, ID))
986967
return Err;
987968
switch(B.F)
988969
{
989970
case FieldId::F_type:
990-
I->ReturnType = std::move(B.I);
991971
break;
992972
default:
993973
return makeWrongFieldError(B.F);
@@ -996,13 +976,12 @@ class FunctionBlock
996976
}
997977
case BI_FIELD_TYPE_BLOCK_ID:
998978
{
999-
FieldTypeBlock B(br_);
979+
FieldTypeBlock B(I->Params.emplace_back(), br_);
1000980
if(auto Err = br_.readBlock(B, ID))
1001981
return Err;
1002982
switch(B.F)
1003983
{
1004984
case FieldId::F_type:
1005-
I->Params.emplace_back(std::move(B.I));
1006985
break;
1007986
default:
1008987
return makeWrongFieldError(B.F);
@@ -1011,11 +990,8 @@ class FunctionBlock
1011990
}
1012991
case BI_TEMPLATE_BLOCK_ID:
1013992
{
1014-
TemplateBlock B(br_);
1015-
if(auto Err = br_.readBlock(B, ID))
1016-
return Err;
1017-
I->Template.emplace(std::move(B.I));
1018-
return llvm::Error::success();
993+
TemplateBlock B(I->Template, br_);
994+
return br_.readBlock(B, ID);
1019995
}
1020996
default:
1021997
break;
@@ -1060,13 +1036,12 @@ class TypedefBlock
10601036
{
10611037
case BI_TYPE_BLOCK_ID:
10621038
{
1063-
TypeBlock B(br_);
1039+
TypeBlock B(I->Underlying, br_);
10641040
if(auto Err = br_.readBlock(B, ID))
10651041
return Err;
10661042
switch(B.F)
10671043
{
10681044
case FieldId::F_type:
1069-
I->Underlying = std::move(B.I);
10701045
break;
10711046
default:
10721047
return makeWrongFieldError(B.F);

0 commit comments

Comments
 (0)