Elab warning in parameterised class

Please go through the code :

class bus_sequencer #(`TB_PARAMS_DECL) extends ovm_sequencer;

`ovm_sequencer_param_utils(bus_sequencer #(`TB_PARAMS_INST))

// new - constructor
function new (string name, ovm_component parent);
super.new(name, parent);
//bus_transfer is sequence item
ovm_update_sequence_lib_and_item(bus_transfer_item#(TB_PARAMS_INST))
endfunction : new

endclass : bus_sequencer

class bus_base_sequence extends ovm_sequence #(bus_transfer_item);

`ovm_sequence_utils(bus_base_sequence, bus_sequencer)

endclass


Getting the below elab warning:


Warning-[PCSRMIO] Class scope used outside of class
bus/verif/bfm/bus_agent/bus_seq_lib.sv, 31
“bus_sequencer::add_typewide_sequence”
An unspecialized class scope ‘::’ reference was seen. This refers to the
generic class, and may only be used inside the class ‘bus_sequencer’. To
access a static member of the default specialization outside the class
‘bus_sequencer’, use ‘bus_sequencer#()::’ instead.
This will be an error in a future release.


Not sure how to solve this warning and blindly adde the parameter next to the bus_sequencer as below:
ovm_sequence_utils(bus_base_sequence, bus_sequencer #(TB_PARAMS_DECL))

Ended with compilation error itself


Error-[MFNF] Member not found
bus/verif/bfm/bus_agent/bus_seq_lib.sv, 31
Could not find member ‘add_typewide_sequence’ in class ‘bus_sequencer’,
at
“bus/verif/bfm/bus_agent/bus_seq_lib.sv”,
14.


Please let me know the right way of using the parameterized sequencer in sequence.

can anyone help on this

In reply to SKUPPAM:

The fact that the OVM sequence library does not support parametrized sequences is one of the many reasons they were deprecated in the UVM. See OVM/Sequences/Generation | Verification Academy for alternatives.