From 3d76cc40d99e9f984db1ecc9310a8ea2004ec901 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Tue, 23 Jan 2018 11:38:53 +0100 Subject: pkg/compiler: fix len of parent template struct Consider the following example: type len_templ1[DATA1, DATA2] { data DATA1 inner len_temp2[DATA2] } type len_temp2[DATA] { data DATA len len[len_templ1, int8] } Here len refers to a parent struct, but the struct is a template, so it's actual name is something like "len_templ1[int8, int16]". Currently this does not work as compiler barks at incorrect len target. Make this work. --- pkg/compiler/testdata/all.txt | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'pkg/compiler/testdata/all.txt') diff --git a/pkg/compiler/testdata/all.txt b/pkg/compiler/testdata/all.txt index 88e45dba4..8bd81c7d4 100644 --- a/pkg/compiler/testdata/all.txt +++ b/pkg/compiler/testdata/all.txt @@ -29,6 +29,20 @@ proc_struct1 { f1 proc[C0, 8, int8] } +# Len/bytesize types. + +type len_templ1[DATA1, DATA2] { + data DATA1 + inner len_temp2[DATA2] +} + +type len_temp2[DATA] { + data DATA + len len[len_templ1, int8] +} + +foo$len_templ(a ptr[in, len_templ1[int8, int16]]) + # Void type. void0 { -- cgit mrf-deployment