summaryrefslogtreecommitdiff
path: root/vala/valamemberaccess.vala
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2021-02-19 14:22:20 +0100
committerRico Tzschichholz <ricotz@ubuntu.com>2021-02-19 14:22:20 +0100
commit23feafb648a4bd1858d131eb98751e4f002d147e (patch)
treed1f7bb60423590322e0c1822b0d0b8d75f634afc /vala/valamemberaccess.vala
parent4ca8ff86f9ee1da8b7718b7b70eaca9ab40f6337 (diff)
downloadvala-23feafb648a4bd1858d131eb98751e4f002d147e.tar.gz
vala: Generics value holding struct pointer requires casting on access
Fixes https://gitlab.gnome.org/GNOME/vala/issues/347
Diffstat (limited to 'vala/valamemberaccess.vala')
-rw-r--r--vala/valamemberaccess.vala3
1 files changed, 3 insertions, 0 deletions
diff --git a/vala/valamemberaccess.vala b/vala/valamemberaccess.vala
index 368f48c88..d56f7ba93 100644
--- a/vala/valamemberaccess.vala
+++ b/vala/valamemberaccess.vala
@@ -370,6 +370,9 @@ public class Vala.MemberAccess : Expression {
if (inner.value_type is PointerType) {
unowned PointerType? pointer_type = inner.value_type as PointerType;
if (pointer_type != null && pointer_type.base_type is ValueType) {
+ if (inner.formal_value_type is GenericType) {
+ inner = new CastExpression (inner, pointer_type.copy (), source_reference);
+ }
// transform foo->bar to (*foo).bar
inner = new PointerIndirection (inner, source_reference);
inner.check (context);