aboutsummaryrefslogtreecommitdiff
path: root/boot/name_analysis.cc
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2026-07-24 18:40:04 +0200
committerEugen Wissner <belka@caraus.de>2026-07-24 18:40:04 +0200
commit6301c1f2f669b84a429e836888629873721e7219 (patch)
tree8ad4bcb634eb0e9332a6459b26a435d730a7cf8d /boot/name_analysis.cc
parent5dc1e4c991efae2e0dd96b59bc57b2cd81a8c5fb (diff)
downloadelna-6301c1f2f669b84a429e836888629873721e7219.tar.gz
Handle array and slice field constness
Diffstat (limited to 'boot/name_analysis.cc')
-rw-r--r--boot/name_analysis.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/boot/name_analysis.cc b/boot/name_analysis.cc
index 0d25039..1e224da 100644
--- a/boot/name_analysis.cc
+++ b/boot/name_analysis.cc
@@ -209,11 +209,12 @@ namespace elna::boot
{
if (field_name == "length")
{
- return lookup_primitive_type("Word");
+ return type(std::make_shared<constant_type>(lookup_primitive_type("Word")));
}
if (field_name == "ptr")
{
- return type(std::make_shared<pointer_type>(element_type));
+ auto pointer = type(std::make_shared<pointer_type>(element_type));
+ return type(std::make_shared<constant_type>(pointer));
}
return std::nullopt;
}