diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-02-19 14:22:20 +0100 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2021-02-19 14:22:20 +0100 |
commit | 23feafb648a4bd1858d131eb98751e4f002d147e (patch) | |
tree | d1f7bb60423590322e0c1822b0d0b8d75f634afc /vala/valamemberaccess.vala | |
parent | 4ca8ff86f9ee1da8b7718b7b70eaca9ab40f6337 (diff) | |
download | vala-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.vala | 3 |
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); |