From fcbf9a07a36f37cfedd0c9665f7f8e90d2a0e8f5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Tue, 1 Jul 2025 18:14:54 +0000 Subject: [PATCH] Fix datatype performance by optimizing get_constructor_accessors for 0-ary constructors Co-authored-by: NikolajBjorner <3085284+NikolajBjorner@users.noreply.github.com> --- src/ast/datatype_decl_plugin.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ast/datatype_decl_plugin.cpp b/src/ast/datatype_decl_plugin.cpp index 4667d872a..f5a6dbc60 100644 --- a/src/ast/datatype_decl_plugin.cpp +++ b/src/ast/datatype_decl_plugin.cpp @@ -1070,6 +1070,12 @@ namespace datatype { plugin().add_ast(con); plugin().m_vectors.push_back(res); plugin().m_constructor2accessors.insert(con, res); + + // Early return for 0-ary constructors - they have no accessors by definition + if (con->get_arity() == 0) { + return res; + } + sort * datatype = con->get_range(); def const& d = get_def(datatype); for (constructor const* c : d) {