@@ -689,34 +689,46 @@ DomInfo<T>::construct() const
689
689
}
690
690
if constexpr (T::isFunction ())
691
691
{
692
+ auto const set_flag =
693
+ [&](dom::String key, bool set)
694
+ {
695
+ if (set)
696
+ entries.emplace_back (std::move (key), true );
697
+ });
698
+ set_flag (" isVariadic" , I_.specs0 .isVariadic .get ());
699
+ set_flag (" isVirtual" , I_.specs0 .isVirtual .get ());
700
+ set_flag (" isVirtualAsWritten" , I_.specs0 .isVirtualAsWritten .get ());
701
+ set_flag (" isPure" , I_.specs0 .isPure .get ());
702
+ set_flag (" isDefaulted" , I_.specs0 .isDefaulted .get ());
703
+ set_flag (" isExplicitlyDefaulted" ,I_.specs0 .isExplicitlyDefaulted .get ());
704
+ set_flag (" isDeleted" , I_.specs0 .isDeleted .get ());
705
+ set_flag (" isDeletedAsWritten" , I_.specs0 .isDeletedAsWritten .get ());
706
+ set_flag (" isNoReturn" , I_.specs0 .isNoReturn .get ());
707
+ set_flag (" hasOverrideAttr" , I_.specs0 .hasOverrideAttr .get ());
708
+ set_flag (" hasTrailingReturn" , I_.specs0 .hasTrailingReturn .get ());
709
+ set_flag (" isConst" , I_.specs0 .isConst .get ());
710
+ set_flag (" isVolatile" , I_.specs0 .isVolatile .get ());
711
+ set_flag (" isFinal" , I_.specs0 .isFinal .get ());
712
+ set_flag (" isNodiscard" , I_.specs1 .isNodiscard .get ());
713
+
714
+ auto const set_string =
715
+ [&](dom::String key, dom::String value)
716
+ {
717
+ if (! value.empty ())
718
+ entries.emplace_back (std::move (key), std::move (value));
719
+ });
720
+ set_string (" constexprKind" , toString (I_.specs0 .constexprKind .get ()));
721
+ set_string (" exceptionSpec" , toString (I_.specs0 .exceptionSpec .get ()));
722
+ set_string (" storageClass" , toString (I_.specs0 .storageClass .get ()));
723
+ set_string (" refQualifier" , toString (I_.specs0 .refQualifier .get ()));
724
+ set_string (" explicitSpec" , toString (I_.specs1 .explicitSpec .get ()));
725
+
692
726
entries.insert (entries.end (), {
693
727
{ " class" , toString (I_.Class ) },
694
728
{ " params" , dom::newArray<DomParamArray>(I_.Params , domCorpus_) },
695
729
{ " return" , domCreate (I_.ReturnType , domCorpus_) },
696
730
{ " template" , domCreate (I_.Template , domCorpus_) },
697
-
698
- { " isVariadic" , I_.specs0 .isVariadic .get () },
699
- { " isVirtual" , I_.specs0 .isVirtual .get () },
700
- { " isVirtualAsWritten" , I_.specs0 .isVirtualAsWritten .get () },
701
- { " isPure" , I_.specs0 .isPure .get () },
702
- { " isDefaulted" , I_.specs0 .isDefaulted .get () },
703
- { " isExplicitlyDefaulted" ,I_.specs0 .isExplicitlyDefaulted .get () },
704
- { " isDeleted" , I_.specs0 .isDeleted .get () },
705
- { " isDeletedAsWritten" , I_.specs0 .isDeletedAsWritten .get () },
706
- { " isNoReturn" , I_.specs0 .isNoReturn .get () },
707
- { " hasOverrideAttr" , I_.specs0 .hasOverrideAttr .get () },
708
- { " hasTrailingReturn" , I_.specs0 .hasTrailingReturn .get () },
709
- { " isConst" , I_.specs0 .isConst .get () },
710
- { " isVolatile" , I_.specs0 .isVolatile .get () },
711
- { " isFinal" , I_.specs0 .isFinal .get () },
712
- { " isNodiscard" , I_.specs1 .isNodiscard .get () },
713
-
714
- { " constexprKind" , toString (I_.specs0 .constexprKind .get ()) },
715
- { " exceptionSpec" , toString (I_.specs0 .exceptionSpec .get ()) },
716
731
{ " overloadedOperator" , I_.specs0 .overloadedOperator .get () },
717
- { " storageClass" , toString (I_.specs0 .storageClass .get ()) },
718
- { " refQualifier" , toString (I_.specs0 .refQualifier .get ()) },
719
- { " explicitSpec" , toString (I_.specs1 .explicitSpec .get ()) }
720
732
});
721
733
}
722
734
if constexpr (T::isEnum ())
0 commit comments