From 134d3ac4caff6d87c79b0892e57073594cb0064c Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Fri, 9 Oct 2026 14:43:11 +0200 Subject: Remove Pointer and nil support --- boot/type_check.cc | 52 ++++------------------------------------------------ 1 file changed, 4 insertions(+), 48 deletions(-) (limited to 'boot/type_check.cc') diff --git a/boot/type_check.cc b/boot/type_check.cc index 31e10f1..797282c 100644 --- a/boot/type_check.cc +++ b/boot/type_check.cc @@ -406,8 +406,7 @@ namespace elna::boot /* * Scaling an offset needs the pointee size, which neither an opaque type - * nor a type parameter has. Only a pointer_type scales; the generic - * Pointer advances byte-wise. + * nor a type parameter has. */ static std::optional find_arithmetic_violation(binary_operator operation, const type& lhs, const type& rhs) @@ -505,45 +504,11 @@ namespace elna::boot } } - assign_check::verdict assign_check::guard_const_laundering() const - { - if (!is_primitive_type(ctx.aliased_assignee, "Pointer")) - { - return verdict::pass; - } - if (const auto ptr = ctx.aliased_assignment.get(); - ptr != nullptr && resolve_aliases(ptr->base).get() != nullptr) - { - return verdict::reject; - } - if (const auto const_assign = ctx.aliased_assignment.get(); - const_assign != nullptr && is_primitive_type(const_assign->unqualified, "Pointer")) - { - return verdict::reject; - } - return verdict::pass; - } - assign_check::verdict assign_check::check_exact_match() const { return ctx.resolved_assignee == ctx.resolved_assignment ? verdict::accept : verdict::pass; } - assign_check::verdict assign_check::check_pointer_hatch() const - { - if (is_primitive_type(ctx.resolved_assignee, "Pointer") - && is_any_pointer_type(ctx.resolved_assignment)) - { - return verdict::accept; - } - if (is_primitive_type(ctx.resolved_assignment, "Pointer") - && is_any_pointer_type(ctx.resolved_assignee)) - { - return verdict::accept; - } - return verdict::pass; - } - assign_check::verdict assign_check::check_pointer_conversion() const { const std::shared_ptr assignee_ptr = ctx.resolved_assignee.get(); @@ -637,11 +602,9 @@ namespace elna::boot bool assign_check::run() { const std::initializer_list assign_handlers = { - &assign_check::guard_const_laundering, &assign_check::check_exact_match, &assign_check::check_slice_conversion, &assign_check::check_array_conversion, - &assign_check::check_pointer_hatch, &assign_check::check_pointer_conversion }; for (const auto handler : assign_handlers) @@ -1153,17 +1116,10 @@ namespace elna::boot } else if (const auto left_pointer = left.get()) { - if (is_primitive_type(right, "Pointer")) - { - return true; - } - else - { - const std::shared_ptr right_pointer = right.get(); + const std::shared_ptr right_pointer = right.get(); - return right_pointer != nullptr - && bind_arguments(parameters, bindings, left_pointer->base, right_pointer->base); - } + return right_pointer != nullptr + && bind_arguments(parameters, bindings, left_pointer->base, right_pointer->base); } else if (const auto left_slice = left.get()) { -- cgit v1.2.3