Gordon Vreugdenhil wrote regarding Mantis 2611:
If you claim that you must pay attention to the *type* of
C then you have issues with:
package C;
int y;
endpackage
module top #(type T);
T C;
int x = C::y;
endmodule
Given that this is purely lexical search, I think it makes the
most sense to say that '::' prefix resolution is eager and
does package resolution only if no other intervening name
exists.
This part of your answer is a straw man argument.The left operand of the scope resolution operator :: shall be a class type name, package name (see 26.2),The language grammar already requires us to distinguish between object and type identifiers when parsing;
covergroup type name, coverpoint name, cross name (see 19.5, 19.6), typedef name or type parame-
ter. When a typedef name or type parameter is used, the name shall resolve to a class or covergroup type
after elaboration.
This archive was generated by hypermail 2.1.8 : Fri Apr 24 2009 - 13:17:43 PDT