From 768537d6e4b82a19e77b7e44234309ecaf4d65d2 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sun, 12 Jul 2026 13:23:54 +0200 Subject: Remove unions --- boot/symbol.cc | 24 ------------------------ 1 file changed, 24 deletions(-) (limited to 'boot/symbol.cc') diff --git a/boot/symbol.cc b/boot/symbol.cc index b75cdc1..9052b23 100644 --- a/boot/symbol.cc +++ b/boot/symbol.cc @@ -38,11 +38,6 @@ namespace elna::boot { } - type::type(std::shared_ptr _union) - : tag(type_tag::_union), _union(_union) - { - } - type::type(std::shared_ptr pointer) : tag(type_tag::pointer), pointer(pointer) { @@ -78,9 +73,6 @@ namespace elna::boot case type_tag::record: new (&record) std::shared_ptr(other.record); break; - case type_tag::_union: - new (&_union) std::shared_ptr(other._union); - break; case type_tag::pointer: new (&pointer) std::shared_ptr(other.pointer); break; @@ -117,9 +109,6 @@ namespace elna::boot case type_tag::record: new (&record) std::shared_ptr(std::move(other.record)); break; - case type_tag::_union: - new (&_union) std::shared_ptr(std::move(other._union)); - break; case type_tag::pointer: new (&pointer) std::shared_ptr(std::move(other.pointer)); break; @@ -172,9 +161,6 @@ namespace elna::boot case type_tag::record: this->record.~shared_ptr(); break; - case type_tag::_union: - this->_union.~shared_ptr(); - break; case type_tag::pointer: this->pointer.~shared_ptr(); break; @@ -208,12 +194,6 @@ namespace elna::boot return tag == type_tag::record ? this->record : nullptr; } - template<> - std::shared_ptr type::get() const - { - return tag == type_tag::_union ? this->_union : nullptr; - } - template<> std::shared_ptr type::get() const { @@ -258,10 +238,6 @@ namespace elna::boot return right_primitive != nullptr && left_primitive->identifier == right_primitive->identifier; } - if (auto left_union = resolved_this.get()) - { - return left_union == resolved_that.get(); - } if (auto left_enumeration = resolved_this.get()) { return left_enumeration == resolved_that.get(); -- cgit v1.2.3