File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -4048,11 +4048,6 @@ std::string Converter::GetDefaultAsStringFallback(clang::QualType qual_type) {
40484048 return getTypedLiteral (" 0.0" , ToString (qual_type));
40494049 }
40504050
4051- if (auto literal = GetDefaultStructLiteralAsString (qual_type);
4052- !literal.empty ()) {
4053- return literal;
4054- }
4055-
40564051 if (auto record = qual_type->getAsRecordDecl ()) {
40574052 if (ctx_.getSourceManager ().isInSystemHeader (record->getLocation ()) &&
40584053 qual_type.isPODType (ctx_)) {
@@ -4072,21 +4067,6 @@ std::string Converter::GetDefaultAsStringFallback(clang::QualType qual_type) {
40724067 return std::format (" <{}>::default()" , ToString (qual_type));
40734068}
40744069
4075- std::string
4076- Converter::GetDefaultStructLiteralAsString (clang::QualType qual_type) {
4077- auto *record = qual_type->getAsRecordDecl ();
4078- if (record == nullptr || record->isUnion ()) {
4079- return {};
4080- }
4081- if (auto *cxx = clang::dyn_cast<clang::CXXRecordDecl>(record);
4082- cxx && GetUserDefinedDefaultConstructor (cxx)) {
4083- return {};
4084- }
4085- Buffer buf (*this );
4086- EmitDefaultStructLiteral (record);
4087- return std::move (buf).str ();
4088- }
4089-
40904070std::string Converter::ConvertVarDefaultInit (clang::QualType qual_type) {
40914071 return GetDefaultAsString (qual_type);
40924072}
Original file line number Diff line number Diff line change @@ -552,9 +552,6 @@ class Converter : public clang::RecursiveASTVisitor<Converter> {
552552
553553 virtual std::string GetDefaultAsStringFallback (clang::QualType qual_type);
554554
555- virtual std::string
556- GetDefaultStructLiteralAsString (clang::QualType qual_type);
557-
558555 virtual std::string ConvertVarDefaultInit (clang::QualType qual_type);
559556
560557 virtual std::string
Original file line number Diff line number Diff line change @@ -2187,22 +2187,19 @@ std::string ConverterRefCount::GetDefaultAsString(clang::QualType qual_type) {
21872187
21882188std::string
21892189ConverterRefCount::GetDefaultAsStringFallback (clang::QualType qual_type) {
2190- if (qual_type->isReferenceType ()) {
2191- return Converter::GetDefaultAsStringFallback (qual_type);
2192- }
2193-
2194- std::string unboxed;
2195- {
2196- PushConversionKind push (*this , ConversionKind::Unboxed);
2197- unboxed = Converter::GetDefaultAsStringFallback (qual_type);
2190+ auto canonical = qual_type.getUnqualifiedType ().getCanonicalType ();
2191+ if (canonical->isBooleanType () ||
2192+ (canonical->isIntegerType () && !canonical->isEnumeralType ()) ||
2193+ canonical->isFloatingType ()) {
2194+ std::string unboxed;
2195+ {
2196+ PushConversionKind push (*this , ConversionKind::Unboxed);
2197+ unboxed = Converter::GetDefaultAsStringFallback (qual_type);
2198+ }
2199+ return BoxValue (std::move (unboxed));
21982200 }
2199- return BoxValue (std::move (unboxed));
2200- }
22012201
2202- std::string
2203- ConverterRefCount::GetDefaultStructLiteralAsString (clang::QualType qual_type) {
2204- PushConversionKind push (*this , ConversionKind::FullRefCount);
2205- return Converter::GetDefaultStructLiteralAsString (qual_type);
2202+ return std::format (" <{}>::default()" , ToString (qual_type));
22062203}
22072204
22082205std::string
Original file line number Diff line number Diff line change @@ -182,9 +182,6 @@ class ConverterRefCount final : public Converter {
182182
183183 std::string GetDefaultAsStringFallback (clang::QualType qual_type) override ;
184184
185- std::string
186- GetDefaultStructLiteralAsString (clang::QualType qual_type) override ;
187-
188185 std::string ConvertVarDefaultInit (clang::QualType qual_type) override ;
189186
190187 std::vector<const char *>
You can’t perform that action at this time.
0 commit comments