Re: [sv-bc] SV_BC #26 - Enumerated Literals in Packages - Feedback Requested

From: Greg Jaxon <Greg.Jaxon@synopsys.com>
Date: Mon Nov 29 2004 - 14:51:55 PST

I misspoke (slightly) concerning the wildcard importation.
As others have pointed out, wildcard imports are conditional
upon the name being referenced before it is otherwise defined.

My revised examples are still correct, although I would
edit one of the comments:

> module tmp2d;
> import p::*;
> import q::teeth_t; // OK
> teeth_t myteeth;
> initial begin
> myteeth = FALSE; // ERROR, FALSE is a direct reference to p::bool_t::FALSE
> // which was imported by the wildcard syntax.

Instead I'd say

module tmp2d;
import p::*;
import q::teeth_t; // OK
teeth_t myteeth;
   initial begin
   myteeth = FALSE; // ERROR, FALSE resolves via import p::*
                     // and has type p::bool_t.

   end;
endmodule

Greg Jaxon

P.S. The use of the scope operator seems like a natural suggestion
       to make, but it is complicated by the many conflicting ways
       "::" is already being used in section 12 and by the separation
       (in section 18.13) of the package name space from the compilation
       unit scope namespace. This last makes a::b ambiguous if a is both
       a package identifier and an enum typedef. I have not been able
       to follow how section 12 avoids this conflict for its uses of "::".
       Is "std" another reserved word?
Received on Mon Nov 29 14:51:59 2004

This archive was generated by hypermail 2.1.8 : Mon Nov 29 2004 - 14:52:15 PST