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