[sv-ac] Example shown in LRM contradicts local variable restriction

From: Surya Pratik Saha <spsaha_at_.....>
Date: Tue Dec 23 2008 - 23:11:19 PST
Hi,
In SV 2009 draft LRM, there is an example:
sequence sub_seq2(local inout int lv);
(a ##1 !a, lv += data_in)
##1 !b[*0:$] ##1 b && (data_out == lv);
endsequence
sequence seq2;
int v1;
(c, v1 = data)
##1 sub_seq2(v1) // lv is initialized by assigning it the value of v1;
// when the instance sub_seq2(v1) matches, v1 is
// assigned the value of lv
##1 (do1 == v1);
endsequence

And later it is mentioned:
It can be useful to assign a value to a local variable within an instance of a named sequence and reference the
local variable in the instantiating context at or after the completion of a match of the instance. This capability
is supported under the following conditions:
— The local variable shall be declared outside the named sequence, and its scope shall include both the
instance of the named sequence and the desired reference in the instantiating context.
— The local variable shall be passed as an entire actual argument in the list of arguments of the
instance of the named sequence.
— The corresponding formal argument shall be untyped.

Whereas, in the example corresponding formal argument 'lv' is not untyped for local variable 'v1'. Am I missing anything?
-- 
Regards
Surya

--
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean. Received on Tue Dec 23 23:12:52 2008

This archive was generated by hypermail 2.1.8 : Tue Dec 23 2008 - 23:13:42 PST