aboutsummaryrefslogtreecommitdiff
path: root/boot/symbol.cc
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-10-03 10:08:05 +0200
committerEugen Wissner <belka@caraus.de>2026-10-03 10:08:05 +0200
commit5d808dd4c4003968bbdf180e1e1193231db5d43b (patch)
tree6391fc8990790288e76dc8eb6ff7b1a6872dab26 /boot/symbol.cc
parent2ea84997ae37517729c3c8ed3af8a000bdc632df (diff)
downloadelna-5d808dd4c4003968bbdf180e1e1193231db5d43b.tar.gz
Strip outmost constness on infered arguments
Diffstat (limited to 'boot/symbol.cc')
-rw-r--r--boot/symbol.cc11
1 files changed, 11 insertions, 0 deletions
diff --git a/boot/symbol.cc b/boot/symbol.cc
index 2293275..e247bdb 100644
--- a/boot/symbol.cc
+++ b/boot/symbol.cc
@@ -572,6 +572,17 @@ namespace elna::boot
}
}
+ type unqualify(const type& subject)
+ {
+ type current = subject;
+
+ while (const auto constant = resolve_aliases(current).get<constant_type>())
+ {
+ current = constant->unqualified;
+ }
+ return current;
+ }
+
type unwrap_aliases(const type& checked)
{
if (const auto alias = checked.get<alias_type>())