[sv-ec] base interface class references (Mantis 1356)

From: Gordon Vreugdenhil <gordonv@Model.com>
Date: Tue Jun 07 2011 - 08:35:51 PDT

Consider the following:

     class base#(parameter p = 1);
     endclass

     class derived extends base#(3);
     endclass

Assume I then have something like:
     derived der = new;
     base #(3) b = der;

Per 8.5, it is legal for me to reference "der.p".

Will the same thing be legal for a interface class?

     interface class base#(parameter p = 1);
     endclass

     class derived implements base#(3);
     endclass

     derived der = new;
     base #(3) b = der;

Is "b.p" a legal reference here? "derived" definitely
does not inherit (or implement) the parameter "p".
Conceptually, "p" is not part of derived at all, so is it
legal to reference it via a base interface class variable
whose handle is an implementing class? If "b.p" is
legal, is "der.p" legal?

Gord.

-- 
--------------------------------------------------------------------
Gordon Vreugdenhil                                503-685-0808
Model Technology (Mentor Graphics)                gordonv@model.com
-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Tue Jun 7 08:36:20 2011

This archive was generated by hypermail 2.1.8 : Tue Jun 07 2011 - 08:36:23 PDT