aboutsummaryrefslogtreecommitdiff
path: root/boot/symbol.cc
diff options
context:
space:
mode:
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>())